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

RadGrid two tables hierarchy problem

4 Answers 139 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Matías Ezequiel Sánchez
Top achievements
Rank 1
Matías Ezequiel Sánchez asked on 25 Jan 2010, 08:34 PM
Hi everybody, i have a problem, i have two tables related by a field, itemNumber, i set one as the MasterTableView data source and the other as the DetailsTable datasource, i have defined the ParentTableRelation but when i expand one row of the mastertableview all of the items on the second table are shown. Both tables use different asp:ObjectDataSource, the SelectMethods return an datatable. Please help, here is the code. Thanks in advance.

<%@ Control 
    Language="C#" 
    AutoEventWireup="true" 
    CodeFile="ShoppingCart.ascx.cs" 
    Inherits="Controls_ShoppingCart" %> 
 
<%@ Register 
    Assembly="Telerik.Web.UI" 
    Namespace="Telerik.Web.UI" 
    TagPrefix="telerik" %> 
 
<%@ Register 
    Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
    Namespace="System.Web.UI" 
    TagPrefix="asp" %> 
 
<telerik:RadAjaxManager 
    ID="radAjaxManagerRadGridShoppingCart" 
    runat="server"
    <AjaxSettings> 
        <telerik:AjaxSetting 
            AjaxControlID="radGridShoppingCart"
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl 
                    ControlID="radGridShoppingCart" 
                    LoadingPanelID="radAjaxLoadingPanelRadGridShoppingCart" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 
<telerik:RadAjaxLoadingPanel 
    ID="radAjaxLoadingPanelRadGridShoppingCart" 
    runat="server" 
    Skin="Default"
</telerik:RadAjaxLoadingPanel> 
<telerik:RadGrid 
    ID="radGridShoppingCart" 
    runat="server" 
    AutoGenerateColumns="False" 
    GridLines="None" 
    DataSourceID="ObjectDataSource1" 
    Width="96%"
<MasterTableView 
        AllowSorting="True" 
        AllowCustomSorting="True" 
        AllowPaging="True" 
        CellPadding="0" 
        CellSpacing="0" 
        DataKeyNames="cartNumber,type,itemNumber" 
        DataSourceID="ObjectDataSource1" 
        HierarchyDefaultExpanded="false" 
        HierarchyLoadMode="Client">         
        <Columns> 
            <telerik:GridTemplateColumn 
                DataField="cartNumber" 
                UniqueName="colcartNumber" 
                SortExpression="cartNumber"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblcartNumber" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("cartNumber") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Center" /> 
                <HeaderStyle HorizontalAlign="Center" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="itemNumber" 
                UniqueName="colItemNumber" 
                SortExpression="itemNumber"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblItemNumber" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("itemNumber") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Center" /> 
                <HeaderStyle HorizontalAlign="Center" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="itemDesc" 
                UniqueName="colDescription" 
                SortExpression="itemDesc"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblDescription" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("itemDesc") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Left" /> 
                <HeaderStyle HorizontalAlign="Left" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="itemCode" 
                UniqueName="colProduct" 
                SortExpression="itemCode"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblProduct" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("itemCode") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Right" /> 
                <HeaderStyle HorizontalAlign="Right" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="itemQuentiy" 
                UniqueName="colQuantity" 
                SortExpression="itemQuentiy"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblQuantity" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("itemQuentiy") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Right" /> 
                <HeaderStyle HorizontalAlign="Right" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="umBapi" 
                UniqueName="colUnit" 
                SortExpression="umBapi"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblUnit" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("umBapi") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Center" /> 
                <HeaderStyle HorizontalAlign="Center" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="leadTime" 
                UniqueName="colDeliveryDate" 
                SortExpression="leadTime"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblDeliveryDate" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("leadTime") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Center" /> 
                <HeaderStyle HorizontalAlign="Center" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="netPrice" 
                UniqueName="colPrice"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblPrice" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("netPrice")%>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Right" /> 
                <HeaderStyle HorizontalAlign="Right" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="unitPrice" 
                UniqueName="colPriceUnit"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblPriceUnit" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("unitPrice") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Right" /> 
                <HeaderStyle HorizontalAlign="Right" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="colFor" 
                UniqueName="colFor" 
                SortExpression="UNIT"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblFor" 
                        runat="server" 
                        CssClass="gridItem"
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Left" /> 
                <HeaderStyle HorizontalAlign="Left" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridTemplateColumn 
                DataField="center" 
                UniqueName="colCust"
                <ItemTemplate> 
                    <asp:Label 
                        ID="lblCust" 
                        runat="server" 
                        CssClass="gridItem" 
                        Text='<% #Eval("center") %>'
                    </asp:Label> 
                </ItemTemplate> 
                <ItemStyle 
                    HorizontalAlign="Center" /> 
                <HeaderStyle HorizontalAlign="Center" /> 
            </telerik:GridTemplateColumn> 
            <telerik:GridButtonColumn 
                ButtonType="ImageButton" 
                ButtonCssClass="imgBtn" 
                ImageUrl="~/imgs/favoritos_16x16.gif" 
                UniqueName="colAddToFavorites"
                <HeaderStyle Width="18px" /> 
            </telerik:GridButtonColumn> 
            <telerik:GridButtonColumn 
                ButtonType="ImageButton" 
                ButtonCssClass="imgBtn" 
                ImageUrl="~/imgs/detalles_16x16.gif" 
                UniqueName="colDetails"
                <HeaderStyle Width="18px" /> 
            </telerik:GridButtonColumn> 
            <telerik:GridButtonColumn 
                ButtonType="ImageButton" 
                ButtonCssClass="imgBtn" 
                ImageUrl="~/imgs/eliminar_16x16.gif" 
                UniqueName="colDelete"
                <HeaderStyle Width="18px" /> 
            </telerik:GridButtonColumn> 
        </Columns> 
        <DetailTables>             
            <telerik:GridTableView 
                AllowSorting="True" 
                AllowCustomSorting="True" 
                AllowPaging="True" 
                CellPadding="0" 
                CellSpacing="0" 
                runat="server" 
                DataSourceID="ObjectDataSource2" 
                DataKeyNames="cartNumber,cartType,itemNumber,messageID">    
                <Columns>                     
                    <telerik:GridTemplateColumn 
                        DataField="cartNumber" 
                        UniqueName="colCartNumber"
                        <ItemTemplate> 
                            <asp:Label 
                                ID="lblCartNumber" 
                                runat="server" 
                                CssClass="gridItem" 
                                Text='<% #Eval("cartNumber") %>'
                            </asp:Label> 
                        </ItemTemplate> 
                        <ItemStyle 
                            HorizontalAlign="Center" /> 
                        <HeaderStyle HorizontalAlign="Center" /> 
                    </telerik:GridTemplateColumn> 
                    <telerik:GridTemplateColumn 
                        DataField="cartType" 
                        UniqueName="colCartType"
                        <ItemTemplate> 
                            <asp:Label 
                                ID="lblCartType" 
                                runat="server" 
                                CssClass="gridItem" 
                                Text='<% #Eval("cartType") %>'
                            </asp:Label> 
                        </ItemTemplate> 
                        <ItemStyle 
                            HorizontalAlign="Center" /> 
                        <HeaderStyle HorizontalAlign="Center" /> 
                    </telerik:GridTemplateColumn> 
                    <telerik:GridTemplateColumn 
                        DataField="itemNumber" 
                        UniqueName="colItemNumber"
                        <ItemTemplate> 
                            <asp:Label 
                                ID="lblItemNumber" 
                                runat="server" 
                                CssClass="gridItem" 
                                Text='<% #Eval("itemNumber") %>'
                            </asp:Label> 
                        </ItemTemplate> 
                        <ItemStyle 
                            HorizontalAlign="Center" /> 
                        <HeaderStyle HorizontalAlign="Center" /> 
                    </telerik:GridTemplateColumn> 
                    <telerik:GridTemplateColumn 
                        DataField="messageID" 
                        UniqueName="colMessageID"
                        <ItemTemplate> 
                            <asp:Label 
                                ID="lblMessageID" 
                                runat="server" 
                                CssClass="gridItem" 
                                Text='<% #Eval("messageID") %>'
                            </asp:Label> 
                        </ItemTemplate> 
                        <ItemStyle 
                            HorizontalAlign="Center" /> 
                        <HeaderStyle HorizontalAlign="Center" /> 
                    </telerik:GridTemplateColumn> 
                    <telerik:GridTemplateColumn 
                        DataField="messageType" 
                        UniqueName="colMessageType"
                        <ItemTemplate> 
                            <asp:Label 
                                ID="lblMessageType" 
                                runat="server" 
                                CssClass="gridItem" 
                                Text='<% #Eval("messageType") %>'
                            </asp:Label> 
                        </ItemTemplate> 
                        <ItemStyle 
                            HorizontalAlign="Center" /> 
                        <HeaderStyle HorizontalAlign="Center" /> 
                    </telerik:GridTemplateColumn> 
                    <telerik:GridTemplateColumn 
                        DataField="messageDesc" 
                        UniqueName="colMessageDesc"
                        <ItemTemplate> 
                            <asp:Label 
                                ID="lblMessageDesc" 
                                runat="server" 
                                CssClass="gridItem" 
                                Text='<% #Eval("messageDesc") %>'
                            </asp:Label> 
                        </ItemTemplate> 
                        <ItemStyle 
                            HorizontalAlign="Center" /> 
                        <HeaderStyle HorizontalAlign="Center" /> 
                    </telerik:GridTemplateColumn> 
                </Columns>              
                <ParentTableRelation> 
                    <telerik:GridRelationFields 
                        DetailKeyField="colItemNumber" 
                        MasterKeyField="colItemNumber" /> 
                </ParentTableRelation> 
            </telerik:GridTableView> 
        </DetailTables> 
        <HeaderStyle 
            Font-Bold="True" 
            Font-Names="Verdana" 
            Font-Size="6.5pt" 
            ForeColor="Black" 
            VerticalAlign="Middle" 
            Wrap="True"/> 
        <ItemStyle 
            Font-Names="Verdana" 
            Font-Size="6.5pt" 
            VerticalAlign="Middle" /> 
        <AlternatingItemStyle 
            Font-Names="Verdana" 
            Font-Size="6.5pt" 
            VerticalAlign="Middle" /> 
        <PagerStyle 
            Font-Bold="True" 
            Font-Names="Verdana" 
            Font-Size="6.5pt" 
            HorizontalAlign="Left" 
            VerticalAlign="Middle" 
            AlwaysVisible="True" /> 
        <CommandItemStyle 
            Font-Bold="True" 
            Font-Names="Verdana" 
            Font-Size="6.5pt"/> 
    <ExpandCollapseColumn 
        Visible="True"
    </ExpandCollapseColumn> 
    </MasterTableView>  
</telerik:RadGrid> 
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetItems" 
    TypeName="Exiros.EKI.Controllers.ItemsCartCRUD"
    <SelectParameters> 
        <asp:QueryStringParameter Name="cartID" QueryStringField="cartid" Type="Int32" /> 
        <asp:QueryStringParameter Name="cartType" QueryStringField="carttype" Type="String" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 
<asp:ObjectDataSource 
    ID="ObjectDataSource2" 
    runat="server" 
    SelectMethod="GetItemsMessages" 
    TypeName="Exiros.EKI.Controllers.ItemsCartCRUD"
    <FilterParameters> 
        <asp:Parameter 
            Name="itemNumber" 
            Type="Int32" /> 
    </FilterParameters> 
    <SelectParameters> 
        <asp:QueryStringParameter 
            Name="cartID" 
            QueryStringField="cartid" 
            Type="Int32" /> 
        <asp:QueryStringParameter 
            Name="cartType" 
            QueryStringField="carttype" 
            Type="String" /> 
    </SelectParameters> 
</asp:ObjectDataSource> 

4 Answers, 1 is accepted

Sort by
0
Pavlina
Telerik team
answered on 26 Jan 2010, 05:44 PM
Hi Matías,

Please have in mind that when HierarchyLoadMode property is set to Client all items are rendered - even if not expanded. To avoid this behavior you should set HierarchyLoadMode to ServerOnDemand or ServerBind

Refer to the following help topic for more information about the different load modes:
Hierarchy load modes

Sincerely yours,
Pavlina
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
Matías Ezequiel Sánchez
Top achievements
Rank 1
answered on 27 Jan 2010, 01:35 PM
How can i send as parameter the key of each row in order to filter the detail results?
0
Pavlina
Telerik team
answered on 29 Jan 2010, 01:50 PM
Hello Matías,

You need to set a proper relation to the child table of the master table view in order to filter the detail results. Please refer to the following help article for more information:
Hierarchical data-binding using declarative relations

All the best,
Pavlina
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
0
Matías Ezequiel Sánchez
Top achievements
Rank 1
answered on 29 Jan 2010, 02:21 PM
Sorry, i forgot to inform you that i already solved the problem, in the event DetailTableDataBind i persist in a session field the key field to filter the results. Thanks.
Tags
Grid
Asked by
Matías Ezequiel Sánchez
Top achievements
Rank 1
Answers by
Pavlina
Telerik team
Matías Ezequiel Sánchez
Top achievements
Rank 1
Share this question
or