This is a migrated thread and some comments may be shown as answers.

Nested View with Client side databinding of Grid

1 Answer 87 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Mani
Top achievements
Rank 1
Mani asked on 30 Jul 2020, 02:13 PM

I am trying to create a Master/Detail RadGrid, wherein the Grid is being populated at Client side using Web Service JSON data. I find that on setting the data source and binding through AJAX, the hierarchical data is not being generated. Can anyone please let me know what's the issue with this? Whether in the first place this use case is supported?

<telerik:RadGrid AllowFilteringByColumn="False" AllowPaging="False" AllowSorting="True" AutoGenerateColumns="False" CellPadding="0" CellSpacing="0" CssClass="gridCrossRoads" GridLines="None" ID="gridManageCases" runat="server">
    <ClientSettings AllowGroupExpandCollapse="false" EnableAlternatingItems="false" EnableRowHoverStyle="true">
        <Scrolling AllowScroll="true" UseStaticHeaders="true" />
        <Selecting AllowRowSelect="True" />
        <ClientEvents OnRowDataBound="GridRowBound" OnHierarchyExpanding="HierarchyExpanding"></ClientEvents>
    </ClientSettings>
    <MasterTableView AllowFilteringByColumn="False" AllowNaturalSort="False" ClientDataKeyNames="YouthId" DataKeyNames="YouthId" EnableColumnsViewState="False" EnableViewState="False" HierarchyLoadMode="Client" NoMasterRecordsText="<div class='noRec'>No records to display.</div>" TableLayout="Auto">
        <Columns>
            <telerik:GridBoundColumn DataField="YouthId" HeaderText="Youth ID" UniqueName="YouthId">
                <HeaderStyle CssClass="gridHeader" Width="10%" />
                <ItemStyle CssClass="gridItem" Width="10%" />
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name">
                <HeaderStyle CssClass="gridHeader" Width="25%" />
                <ItemStyle CssClass="gridItem" Width="25%" />
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Gender" HeaderText="Gender" UniqueName="Gender">
                <HeaderStyle CssClass="gridHeader" Width="10%" />
                <ItemStyle CssClass="gridItem" Width="10%" />
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Age" HeaderText="Age" UniqueName="Age">
                <HeaderStyle CssClass="gridHeader" Width="10%" />
                <ItemStyle CssClass="gridItem" Width="10%" />
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Phone" HeaderText="Phone" UniqueName="Phone">
                <HeaderStyle CssClass="gridHeader" Width="10%" />
                <ItemStyle CssClass="gridItem" Width="10%" />
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ZipCode" HeaderText="Zip Code" UniqueName="ZipCode">
                <HeaderStyle CssClass="gridHeader" Width="10%" />
                <ItemStyle CssClass="gridItem" Width="10%" />
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="Status" HeaderText="Status" UniqueName="Status">
                <HeaderStyle CssClass="gridHeader" Width="10%" />
                <ItemStyle CssClass="gridItem" Width="10%" />
            </telerik:GridBoundColumn>
            <telerik:GridTemplateColumn UniqueName="Temp">
                <HeaderStyle CssClass="gridHeader" Width="15%" />
                <ItemStyle HorizontalAlign="Center" Width="15%" />
            </telerik:GridTemplateColumn>
        </Columns>
        <NestedViewTemplate>
            <div class="viewWrap">
                <telerik:RadTabStrip EnableViewState="False" ID="tbGrd" MultiPageID="multiPage" runat="server" SelectedIndex="0">
                    <Tabs>
                        <telerik:RadTab Owner="tbGrd" PageViewID="pBasic" runat="server" Selected="True" Text="Identification" Value="identification">
                        </telerik:RadTab>
                        <telerik:RadTab Owner="tbGrd" PageViewID="pOthers" runat="server" Text="Contact" Value="contact">
                        </telerik:RadTab>
                        <telerik:RadTab Owner="tbGrd" PageViewID="pSkills" runat="server" Text="Referral" Value="referral">
                        </telerik:RadTab>
                        <telerik:RadTab Owner="tbGrd" PageViewID="pNotes" runat="server" Text="Options" Value="options">
                        </telerik:RadTab>
                        <telerik:RadTab Owner="tbGrd" PageViewID="pAct" runat="server" Text="Calls" Value="calls">
                        </telerik:RadTab>
                    </Tabs>
                </telerik:RadTabStrip>
                <telerik:RadMultiPage CssClass="pageView" EnableViewState="False" ID="multiPage" runat="server" SelectedIndex="0">
                    <telerik:RadPageView ID="pageIdentification" runat="server">
                        <div id="dBas" runat="server">
                            This is the first tab
                        </div>
                    </telerik:RadPageView>
                    <telerik:RadPageView ID="pageContact" runat="server">
                        <div id="dOth" runat="server">
                            this is the second tab
                        </div>
                    </telerik:RadPageView>
                    <telerik:RadPageView ID="pageReferral" runat="server">
                        <div id="dSkl" runat="server">
                            this is the third tab
                        </div>
                    </telerik:RadPageView>
                    <telerik:RadPageView ID="pageOptions" runat="server">
                        <div id="dNot" runat="server">
                            this si the fourth tab
                        </div>
                    </telerik:RadPageView>
                    <telerik:RadPageView ID="pageCalls" runat="server">
                        <div id="dSub" runat="server">
                            this is the fifth tab
                        </div>
                    </telerik:RadPageView>
                </telerik:RadMultiPage>
            </div>
        </NestedViewTemplate>
    </MasterTableView>
</telerik:RadGrid>

 

    <script>
        $(document).ready(function()
        {
            var GridNewCases = $find(arrayControl[0]);
            var GridNewCasesMaster = GridNewCases.get_masterTableView();
//Data is fetched here
            //setTimeout(GetNewCasesData, 100);
 
//Though this is new function this is how the datasource is setup:
    GridNewCasesMaster.set_dataSource((result && result.Data) ? result.Data : []);
    GridNewCasesMaster.dataBind();
 
 
        });
       </script>

 

This is the datasource that is retrieved.

{"d":{"Data":[{"Id":2,"YouthId":"CR0000002","Name":"Mani Venkiteswaran","Gender":"Others/Unknown","Age":20,"Phone":"(123) 456-7890","ZipCode":"18940-","Status":"New"},{"Id":5,"YouthId":"CR0000005","Name":"Venrall Jamanison","Gender":"Male","Age":8,"Phone":"(988) 554-4633","ZipCode":"18940-","Status":"New"},{"Id":6,"YouthId":"CR0000006","Name":"Jermey Smith","Gender":"Male","Age":15,"Phone":"(554) 889-6633","ZipCode":"18940-","Status":"New"},{"Id":7,"YouthId":"CR0000007","Name":"Walter Nelson","Gender":"Male","Age":16,"Phone":"(558) 733-1225","ZipCode":"18942-","Status":"New"}]}}

 

At the code behind this is the code:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        return;
    }
 
    gridManageCases.DataSource = new List<object>();
    gridManageCases.AutoGenerateHierarchy = true;
}

 

 

 

Please let me know how this can be done. I found one code sample on your site from 2008, though the steps are same what I am doing but then I should be knowing much changes have happened since the assembly was released back in 2008 to now.

Thanks.

1 Answer, 1 is accepted

Sort by
0
Mani
Top achievements
Rank 1
answered on 02 Aug 2020, 10:45 AM
Found a way out. Thanks for the help.
Tags
Grid
Asked by
Mani
Top achievements
Rank 1
Answers by
Mani
Top achievements
Rank 1
Share this question
or