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.