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

[Solved] 3 level hierarchy, but 3rd level never renders indicators - can't expand/collapse deepest level

3 Answers 102 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Scott
Top achievements
Rank 1
Scott asked on 14 Jul 2009, 06:51 AM
I have the following markup on my page. The root and the 2nd level hierarchy seem to function well, but the 2nd level should expose a 3rd level hierarchy and this never happens. 

Why don't I get the indicators for the 3rd level ??? 

Thanks for any tips:


<telerik:RadGrid ID="tgrdProducts" runat="server" AllowSorting="false" AllowPaging="true" AllowFilteringByColumn="false" EnableViewState="false"   
    AutoGenerateColumns="false" Skin="WebBlue" AllowCustomPaging="true" AllowMultiRowSelection="true">  
    <MasterTableView ClientDataKeyNames="ProductNumber, RecordID, ParentID" AllowSorting="false"   
        HierarchyLoadMode="Client">  
        <NoRecordsTemplate> 
            <div>There are no records to display</div> 
        </NoRecordsTemplate> 
        <DetailTables> 
            <telerik:GridTableView ClientDataKeyNames="LicensableNumber, RecordID, ParentID" Width="100%" 
                AutoGenerateColumns="false" 
                HierarchyLoadMode="Client" 
                runat="server">  
                <PagerStyle AlwaysVisible="false" Position="Top" Mode="NextPrevNumericAndAdvanced" /> 
                <ParentTableRelation> 
                    <telerik:GridRelationFields DetailKeyField="ParentID" MasterKeyField="RecordID" /> 
                </ParentTableRelation> 
                <NoRecordsTemplate> 
                    <div>There are no records to display</div> 
                </NoRecordsTemplate> 
                <DetailTables> 
                    <telerik:GridTableView ClientDataKeyNames="ItemPartNumber, RecordID, ParentID" Width="100%" 
                        AutoGenerateColumns="false"   
                        HierarchyLoadMode="Client" 
                        runat="server" > 
                        <ParentTableRelation> 
                            <telerik:GridRelationFields DetailKeyField="ParentID" MasterKeyField="RecordID" /> 
                        </ParentTableRelation> 
                        <NoRecordsTemplate> 
                            <div>There are no records to display</div> 
                        </NoRecordsTemplate> 
                        <Columns> 
                            <telerik:GridBoundColumn DataField="RecordID" DataType="System.Int32"   
                                HeaderText="RecordID" SortExpression="RecordID" UniqueName="RecordID" Visible="false">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="ParentID" DataType="System.Int32"   
                                HeaderText="ParentID" SortExpression="ParentID" UniqueName="ParentID" Visible="false">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="ItemPartNumber" ItemStyle-Wrap="false" 
                                HeaderText="Item PartNumber" SortExpression="ItemPartNumber"   
                                UniqueName="ItemPartNumber">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="Description" HeaderText="Description" ItemStyle-Wrap="false" 
                                SortExpression="Description" UniqueName="Description">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="PartType" HeaderText="Part Type" ItemStyle-Wrap="false" 
                                SortExpression="PartType" UniqueName="PartType">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="Licensed" HeaderText="Licensed" ItemStyle-Wrap="false" 
                                SortExpression="Licensed" UniqueName="Licensed">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="LineItem" HeaderText="Line Item" ItemStyle-Wrap="false" 
                                SortExpression="LineItem" UniqueName="LineItem">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="EndItemAccess" DataType="System.Int32" ItemStyle-Wrap="false" 
                                HeaderText="End Item Access" SortExpression="EndItemAccess"   
                                UniqueName="EndItemAccess">  
                            </telerik:GridBoundColumn> 
                        </Columns> 
                    </telerik:GridTableView> 
                </DetailTables> 
                <Columns> 
                    <telerik:GridBoundColumn DataField="RecordID" DataType="System.Int32"   
                        HeaderText="RecordID" SortExpression="RecordID" UniqueName="RecordID" Visible="false">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="ParentID" DataType="System.Int32"   
                        HeaderText="ParentID" SortExpression="ParentID" UniqueName="ParentID" Visible="false">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LicensableNumber" ItemStyle-Wrap="false" 
                        HeaderText="Licensable Number"   
                        SortExpression="LicensableNumber"   
                        UniqueName="LicensableNumber">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Description" HeaderText="Description" ItemStyle-Wrap="false" 
                        SortExpression="Description" UniqueName="Description">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="PartType" HeaderText="Part Type" ItemStyle-Wrap="false" 
                        SortExpression="PartType" UniqueName="PartType">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Language" HeaderText="Language" ItemStyle-Wrap="false" 
                        SortExpression="Language" UniqueName="Language">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="PricingBasis" HeaderText="Pricing Basis" ItemStyle-Wrap="false" 
                        SortExpression="PricingBasis" UniqueName="PricingBasis">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="BillingType" HeaderText="Billing Type" ItemStyle-Wrap="false" 
                        SortExpression="BillingType" UniqueName="BillingType">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LicensableStatus"   
                        HeaderText="Licensable Status" SortExpression="LicensableStatus" ItemStyle-Wrap="false" 
                        UniqueName="LicensableStatus">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Licensed" HeaderText="Licensed" ItemStyle-Wrap="false" 
                        SortExpression="Licensed" UniqueName="Licensed">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="StartDate" DataType="System.DateTime" ItemStyle-Wrap="false" 
                        HeaderText="Start Date" SortExpression="StartDate" UniqueName="StartDate">  
                    </telerik:GridBoundColumn>                                          
                    <telerik:GridBoundColumn DataField="EndDate" DataType="System.DateTime" ItemStyle-Wrap="false" 
                        HeaderText="End Date" SortExpression="EndDate" UniqueName="EndDate">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LineItem" HeaderText="Line Item" ItemStyle-Wrap="false" 
                        SortExpression="LineItem" UniqueName="LineItem">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LicensableAccess" DataType="System.Int32" ItemStyle-Wrap="false" 
                        HeaderText="Licensable Access" SortExpression="LicensableAccess"   
                        UniqueName="LicensableAccess">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="ProductFamilyName"   
                        HeaderText="Product Family Name" SortExpression="ProductFamilyName" ItemStyle-Wrap="false" 
                        UniqueName="ProductFamilyName">  
                    </telerik:GridBoundColumn> 
                </Columns> 
            </telerik:GridTableView> 
        </DetailTables> 
        <Columns> 
            <telerik:GridBoundColumn DataField="RecordID" DataType="System.Int32"   
                HeaderText="RecordID" SortExpression="RecordID" UniqueName="RecordID" Visible="false">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="ParentID" DataType="System.Int32"   
                HeaderText="ParentID" SortExpression="ParentID" UniqueName="ParentID" Visible="false">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="ProductNumber" ItemStyle-Wrap="false" 
                DataType="System.Int32" HeaderText="Product Number"   
                SortExpression="ProductNumber" UniqueName="ProductNumber">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="Description" HeaderText="Description" ItemStyle-Wrap="false" 
                SortExpression="Description" UniqueName="Description">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="PartType" HeaderText="Part Type" ItemStyle-Wrap="false" 
                SortExpression="PartType" UniqueName="PartType">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="EstimatedAnnualVolume" ItemStyle-Wrap="false" 
                DataType="System.Decimal" HeaderText="Estimated Annual Volume"   
                SortExpression="EstimatedAnnualVolume" UniqueName="EstimatedAnnualVolume">  
            </telerik:GridBoundColumn> 
        </Columns> 
    </MasterTableView>                          
    <SortingSettings SortedBackColor="Beige" /> 
    <PagerStyle AlwaysVisible="true" Position="TopAndBottom" Mode="NextPrevNumericAndAdvanced" /> 
    <ClientSettings AllowExpandCollapse="true" AllowColumnsReorder="false"  > 
        <Selecting AllowRowSelect="true" /> 
        <ClientEvents OnCommand="tgrid_Command" OnHierarchyExpanded="tgrid_OnRowExpand" /> 
    </ClientSettings> 
</telerik:RadGrid> 

3 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 14 Jul 2009, 07:49 AM
Hi Scott,

In the above given aspx code I can see that even though you have set the ParentTableRelation you have set the ClientDataKeyNames  for the Grid instead of DataKeyNames . Try setting the DataKeyNames and see whether the hierarchical Grid is working correctly.

You may also refer the following help articles for getting more details about the Hierarchical Grid.

Understanding hierarchical grid structure
Hierarchical data-binding using declarative relations
Hierarchical data-binding using DetailTableDataBind event

Shinu


0
Scott
Top achievements
Rank 1
answered on 14 Jul 2009, 10:41 PM
Thanks for the reply!  I've reviewed that info as you suggested, and made the change to add the DataKeyNames property in addition to the ClientDataKeyNames property.  I see no change in behavior however, I still get only Root and 2nd level grids, and can't expose 3rd level grids.  

The problem I have is that this is all being done on the client using client API callbacks. So much of the help info is server side code examples, and I'm wondering if I'm running into an issue with doing this all from the client API.

Page Flow Description:
  1. During initial page load the grid gets the parent rows bound from the server
  2. When paging, filtering, or row expand requests occur these events are handled in the client and we call a static page method to get the indicated data
  3. When I expand a root-level parent row, my 2nd level rows are retrieved from the static page method via client API, and then bound to the grid using client side data binding.
  4. At this point, I expect the newly exposed detail table to show indicators for each row in the 2nd level grid, indicating that they can be expanded to the third level grid.
  5. But this never happens - the 2nd level does not expose the indicators.

JavaScript Code:

<telerik:RadCodeBlock ID="RadCodeBlock" runat="server">  
<script language="javascript" type="text/javascript">  
 
    var gridClientId = "<%= tgrdProducts.ClientID %>",  
        loadingPanelClientId = "<%= RadAjaxLoadingPanel.ClientID %>";  
 
    //****************************************************************************************************************************  
    //Function that gets called when the next/prev/inline filter buttons are clicked in the UI  
    //****************************************************************************************************************************  
    function tgrid_Command (sender, args) {  
        try {  
            //debugger;  
            args.set_cancel(true);  
 
            var radGrid = sender.get_masterTableView();  
            var objRequestParam = BuildRequestParam(sender.get_masterTableView());  
              
            $find(loadingPanelClientId).show(gridClientId);  
 
            CollapseRows(sender.get_masterTableView());          
 
            GetWebMethodForPageData()(objRequestParam, OnSuccess, OnFailure, radGrid);  
        }  
        catch (ex) {  
            $find(loadingPanelClientId).hide(gridClientId);  
            alert("radGrid_Command Error. " + ex.description);  
        }  
    }  
 
    function tgrid_OnRowExpand(sender, args) {  
        var childGrid = $find(gridClientId).get_detailTables()[parseInt(args.get_itemIndexHierarchical())];  
 
        try {  
            CollapseRows(sender.get_masterTableView());          
 
            $find(loadingPanelClientId).show(gridClientId);  
 
            var requestParms = BuildRequestParam(childGrid, args);  
            if (requestParms.FilterExpressions.length > 0 && requestParms.PageIndex > 0) {  
                childGrid.set_currentPageIndex(0);  
            }  
 
            GetWebMethodForPageData()(requestParms, OnSuccess, OnFailure, childGrid);   
              
            SetVirtualCountForChildGrid(args.get_gridDataItem(), childGrid);  
        }  
        catch (ex) {  
            $find(loadingPanelClientId).hide(gridClientId);  
        }  
    }  
 
    function LoadChildGrid(args, childGrid) {  
        var requestParms = BuildRequestParam(childGrid, args);  
        if (requestParms.FilterExpressions.length > 0 && requestParms.PageIndex > 0) {  
            childGrid.set_currentPageIndex(0);  
        }  
 
        GetWebMethodForPageData()(requestParms, OnSuccess, OnFailure, childGrid);  
        //        GridPoC.DataServices.GetAgreementProductCount(keyNo, filterExpressionsForDLinq, OnCountSuccess, OnFailure, childGrid);  
    }  
 
    function SetVirtualCountForChildGrid(gridDataItem, childGrid) {  
    }  
 
    function CollapseRows(grid) {  
        var rows = grid.get_dataItems();  
        if(rows == nullreturn;  
          
        for (var i = 0; i < rows.length; i++) {  
            var input = rows[i].get_element().cells[0].getElementsByTagName("input")[0];  
            if (input.className == "rgCollapse") {  
                input.click();  
            }  
        }  
    }  
 
    function GetFilterExpression(grid) {  
        var filterExpressions = grid.get_filterExpressions();  
        return filterExpressions.toDynamicLinq();  
    }  
 
 
    function GetSortExpression(grid) {  
        var sortExpressions = grid.get_sortExpressions();  
        return sortExpressions.toString();  
    }  
 
    //****************************************************************************************************************************  
    //Function that returns the web method call for search list results  
    //****************************************************************************************************************************  
    function GetWebMethodForPageData() {  
        try {  
            return PageMethods.GetPagingData;  
        }  
        catch (ex) {  
            alert("No Web method defined for the search list. " + ex.description);  
        }  
    }  
 
    //****************************************************************************************************************************  
    //Function that gets called when the async call to fetch search list is successful  
    //****************************************************************************************************************************  
    function OnSuccess(result, grid) {  
        try {  
            grid.set_dataSource(result);  
            //debugger;  
            grid.dataBind();  
        }  
        catch (ex) {  
            alert("Error occured while loading data. " + ex.description);  
        }  
 
        try {  
            $find(loadingPanelClientId).hide(gridClientId);  
        } catch (ex) {  
            alert("Error occured while hiding load animation. " + ex.description);  
        }  
    }  
 
    //****************************************************************************************************************************  
    //Function that gets called when the async call to fetch search count has failed  
    //****************************************************************************************************************************  
    function OnFailure(error) {  
        alert("Service Error: " + error.get_message() + "\n\n" +  
        "Status Code: " + error.get_statusCode() + "\n\n" +  
        "Exception Type: " + error.get_exceptionType() + "\n\n" +  
        "Timedout: " + error.get_timedOut());  
 
        //Hide the loading gif  
        $find(loadingPanelClientId).hide(gridClientId);  
    }  
 
    //****************************************************************************************************************************  
    //Function to build the search param request object  
    //****************************************************************************************************************************  
    function BuildRequestParam(grid, args) {  
 
        var currentPageIndex = grid.get_currentPageIndex();  
        var pageSize = grid.get_pageSize();  
 
        var keyName = (args === undefined) ? "" : args.get_tableView().get_clientDataKeyNames()[0];  
        var keyValue = (args === undefined) ? "" : args.getDataKeyValue(keyName);  
        var recordID = (args === undefined) ? "0" : args.getDataKeyValue("RecordID");  
        var parentID = (args === undefined) ? "0" : args.getDataKeyValue("ParentID");  
 
        var objRequestParams = new AgreementHelpers.AgreementPagingRequestParam();  
        objRequestParams.PageIndex = currentPageIndex;  
        objRequestParams.PageSize = pageSize;  
        objRequestParams.SortExpressions = GetSortExpression(grid);  
        objRequestParams.FilterExpressions = GetFilterExpression(grid);  
        objRequestParams.GridIDKey = keyName;  
        objRequestParams.GridIDValue = keyValue;  
        objRequestParams.RecordID = recordID;  
        objRequestParams.ParentID = parentID;  
        return objRequestParams;  
    }  
</script>  
</telerik:RadCodeBlock> 

Related (modified) Markup:
<telerik:RadGrid ID="tgrdProducts" runat="server" AllowSorting="false" AllowPaging="true" AllowFilteringByColumn="true" EnableViewState="false"   
    AutoGenerateColumns="false" Skin="WebBlue" AllowCustomPaging="true" AllowMultiRowSelection="true">  
    <MasterTableView   
        DataKeyNames="ProductNumber, RecordID, ParentID"   
        ClientDataKeyNames="ProductNumber, RecordID, ParentID" 
        AllowSorting="false"   
        HierarchyLoadMode="Client">  
        <NoRecordsTemplate> 
            <div>There are no records to display</div> 
        </NoRecordsTemplate> 
        <DetailTables> 
            <telerik:GridTableView   
                DataKeyNames="LicensableNumber, RecordID, ParentID"   
                ClientDataKeyNames="LicensableNumber, RecordID, ParentID" 
                Width="100%" 
                AutoGenerateColumns="false" 
                HierarchyLoadMode="Client" 
                runat="server">  
                <PagerStyle AlwaysVisible="false" Position="Top" Mode="NextPrevNumericAndAdvanced" /> 
                <ParentTableRelation> 
                    <telerik:GridRelationFields DetailKeyField="ParentID" MasterKeyField="RecordID" /> 
                </ParentTableRelation> 
                <NoRecordsTemplate> 
                    <div>There are no records to display</div> 
                </NoRecordsTemplate> 
                <DetailTables> 
                    <telerik:GridTableView   
                        ClientDataKeyNames="ItemPartNumber, RecordID, ParentID"   
                        DataKeyNames="ItemPartNumber, RecordID, ParentID"   
                        Width="100%" 
                        AutoGenerateColumns="false"   
                        HierarchyLoadMode="Client" 
                        runat="server" > 
                        <ParentTableRelation> 
                            <telerik:GridRelationFields DetailKeyField="ParentID" MasterKeyField="RecordID" /> 
                        </ParentTableRelation> 
                        <NoRecordsTemplate> 
                            <div>There are no records to display</div> 
                        </NoRecordsTemplate> 
                        <Columns> 
                            <telerik:GridBoundColumn DataField="RecordID" DataType="System.Int32"   
                                HeaderText="RecordID" SortExpression="RecordID" UniqueName="RecordID" Visible="false">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="ParentID" DataType="System.Int32"   
                                HeaderText="ParentID" SortExpression="ParentID" UniqueName="ParentID" Visible="false">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="ItemPartNumber" ItemStyle-Wrap="false" 
                                HeaderText=" Item PartNumber" SortExpression="ItemPartNumber"   
                                UniqueName="ItemPartNumber">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="Description" HeaderText="Description" ItemStyle-Wrap="false" 
                                SortExpression="Description" UniqueName="Description">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="PartType" HeaderText="Part Type" ItemStyle-Wrap="false" 
                                SortExpression="PartType" UniqueName="PartType">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="Licensed" HeaderText="Licensed" ItemStyle-Wrap="false" 
                                SortExpression="Licensed" UniqueName="Licensed">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="LineItem" HeaderText="Line Item" ItemStyle-Wrap="false" 
                                SortExpression="LineItem" UniqueName="LineItem">  
                            </telerik:GridBoundColumn> 
                            <telerik:GridBoundColumn DataField="EndItemAccess" DataType="System.Int32" ItemStyle-Wrap="false" 
                                HeaderText="End Item Access" SortExpression="EndItemAccess"   
                                UniqueName="EndItemAccess">  
                            </telerik:GridBoundColumn> 
                        </Columns> 
                    </telerik:GridTableView> 
                </DetailTables> 
                <Columns> 
                    <telerik:GridBoundColumn DataField="RecordID" DataType="System.Int32"   
                        HeaderText="RecordID" SortExpression="RecordID" UniqueName="RecordID" Visible="false">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="ParentID" DataType="System.Int32"   
                        HeaderText="ParentID" SortExpression="ParentID" UniqueName="ParentID" Visible="false">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LicensableNumber" ItemStyle-Wrap="false" 
                        HeaderText=" Licensable Number"   
                        SortExpression="LicensableNumber"   
                        UniqueName="LicensableNumber">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Description" HeaderText="Description" ItemStyle-Wrap="false" 
                        SortExpression="Description" UniqueName="Description">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="PartType" HeaderText="Part Type" ItemStyle-Wrap="false" 
                        SortExpression="PartType" UniqueName="PartType">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Language" HeaderText="Language" ItemStyle-Wrap="false" 
                        SortExpression="Language" UniqueName="Language">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="PricingBasis" HeaderText="Pricing Basis" ItemStyle-Wrap="false" 
                        SortExpression="PricingBasis" UniqueName="PricingBasis">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="BillingType" HeaderText="Billing Type" ItemStyle-Wrap="false" 
                        SortExpression="BillingType" UniqueName="BillingType">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LicensableStatus"   
                        HeaderText="Licensable Status" SortExpression="LicensableStatus" ItemStyle-Wrap="false" 
                        UniqueName="LicensableStatus">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="Licensed" HeaderText="Licensed" ItemStyle-Wrap="false" 
                        SortExpression="Licensed" UniqueName="Licensed">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="StartDate" DataType="System.DateTime" ItemStyle-Wrap="false" 
                        HeaderText="Start Date" SortExpression="StartDate" UniqueName="StartDate">  
                    </telerik:GridBoundColumn>                                          
                    <telerik:GridBoundColumn DataField="EndDate" DataType="System.DateTime" ItemStyle-Wrap="false" 
                        HeaderText="End Date" SortExpression="EndDate" UniqueName="EndDate">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LineItem" HeaderText="Line Item" ItemStyle-Wrap="false" 
                        SortExpression="LineItem" UniqueName="LineItem">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="LicensableAccess" DataType="System.Int32" ItemStyle-Wrap="false" 
                        HeaderText="Licensable Access" SortExpression="LicensableAccess"   
                        UniqueName="LicensableAccess">  
                    </telerik:GridBoundColumn> 
                    <telerik:GridBoundColumn DataField="ProductFamilyName"   
                        HeaderText="Product Family Name" SortExpression="ProductFamilyName" ItemStyle-Wrap="false" 
                        UniqueName="ProductFamilyName">  
                    </telerik:GridBoundColumn> 
                </Columns> 
            </telerik:GridTableView> 
        </DetailTables> 
        <Columns> 
            <telerik:GridBoundColumn DataField="RecordID" DataType="System.Int32"   
                HeaderText="RecordID" SortExpression="RecordID" UniqueName="RecordID" Visible="false">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="ParentID" DataType="System.Int32"   
                HeaderText="ParentID" SortExpression="ParentID" UniqueName="ParentID" Visible="false">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="ProductNumber" ItemStyle-Wrap="false" 
                DataType="System.Int32" HeaderText=" Product Number"   
                SortExpression="ProductNumber" UniqueName="ProductNumber">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="Description" HeaderText="Description" ItemStyle-Wrap="false" 
                SortExpression="Description" UniqueName="Description">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="PartType" HeaderText="Part Type" ItemStyle-Wrap="false" 
                SortExpression="PartType" UniqueName="PartType">  
            </telerik:GridBoundColumn> 
            <telerik:GridBoundColumn DataField="EstimatedAnnualVolume" ItemStyle-Wrap="false" 
                DataType="System.Decimal" HeaderText="Estimated Annual Volume"   
                SortExpression="EstimatedAnnualVolume" UniqueName="EstimatedAnnualVolume">  
            </telerik:GridBoundColumn> 
        </Columns> 
    </MasterTableView>                          
    <SortingSettings SortedBackColor="Beige" /> 
    <PagerStyle AlwaysVisible="true" Position="TopAndBottom" Mode="NextPrevNumericAndAdvanced" /> 
    <ClientSettings AllowExpandCollapse="true" AllowColumnsReorder="false"  > 
        <Selecting AllowRowSelect="true" /> 
        <ClientEvents OnCommand="tgrid_Command" OnHierarchyExpanded="tgrid_OnRowExpand" /> 
    </ClientSettings> 
</telerik:RadGrid> 
0
Sebastian
Telerik team
answered on 15 Jul 2009, 08:47 AM
Hello Scott,

Thank you for the detailed explanation concerning your scenario.

My colleague Rosen already responded in the support ticket you opened with regards to this subject and I am pasting his reply in the thread for reference:

I examined the sample code you have pasted in the forums. I should inform you that currently RadGrid does not support hierarchy with client-side data binding. In order to build hierarchy with client binding you may use another RadGrid inside NestedViewTemplate. The technique is shown in this blog post.

Kind regards,
Sebastian
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
Grid
Asked by
Scott
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Scott
Top achievements
Rank 1
Sebastian
Telerik team
Share this question
or