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

Find the parent of the parent in hierarchy grid

1 Answer 151 Views
Grid
This is a migrated thread and some comments may be shown as answers.
L
Top achievements
Rank 1
L asked on 17 Jun 2013, 02:37 PM
Hi,

I want to find the parent of the parent in a hierarchy grid structure. I have this:
<telerik:RadGrid ID="RadGrid1" runat="server" Width="50%" ShowStatusBar="true" AutoGenerateColumns="False"
            PageSize="50" AllowSorting="True" AllowMultiRowSelection="False" AllowPaging="True"
            OnDetailTableDataBind="RadGrid1_DetailTableDataBind" OnNeedDataSource="RadGrid1_NeedDataSource"
            OnPreRender="RadGrid1_PreRender">
            <PagerStyle Mode="NumericPages"></PagerStyle>
            <MasterTableView Width="100%" DataKeyNames="ServiceName" AllowMultiColumnSorting="True">
                <DetailTables>
                    <telerik:GridTableView DataKeyNames="MethodName" Name="MethodName" Width="100%">
                        <DetailTables>
                            <telerik:GridTableView DataKeyNames="ParameterName" Name="ParameterName" Width="100%">
                                <Columns>
                                    <telerik:GridBoundColumn SortExpression="ParameterName" HeaderText="Parameter Name"
                                        HeaderButtonType="TextButton" DataField="ParameterName">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn SortExpression="ParameterType" HeaderText="Parameter Type"
                                        HeaderButtonType="TextButton" DataField="ParameterType">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridTemplateColumn HeaderText="Parameter Value" UniqueName="ParamWrapper">
                                        <ItemTemplate>
                                            <asp:TextBox runat="server" ID="ParameterValue" Text='<%# DataBinder.Eval(Container.DataItem, "ParameterValue") %>'></asp:TextBox>
                                        </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                </Columns>
                            </telerik:GridTableView>
                        </DetailTables>
                        <Columns>
                            <telerik:GridBoundColumn SortExpression="MethodName" HeaderText="Method Name" HeaderButtonType="TextButton"
                                DataField="MethodName" UniqueName="MethodName">
                            </telerik:GridBoundColumn>
                            <telerik:GridTemplateColumn HeaderText="Status">
                                <ItemTemplate>
                                    <asp:Button runat="server" ID="btnMethodStatus" OnClick="btnMethodStatus_OnClick"
                                        Text="-"></asp:Button>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="Elapsed time">
                                <ItemTemplate>
                                    <asp:Label runat="server" ID="lblElapsedTime" Text="0">
                                    </asp:Label>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridTemplateColumn HeaderText="Last executed on">
                                <ItemTemplate>
                                    <asp:Label runat="server" ID="lblLastTimeExecuted" Text="-">
                                    </asp:Label>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                        </Columns>
                    </telerik:GridTableView>
                </DetailTables>
                <Columns>
                    <telerik:GridBoundColumn SortExpression="ServiceName" HeaderText="Service Name" HeaderButtonType="TextButton"
                        DataField="ServiceName">
                    </telerik:GridBoundColumn>
                    <telerik:GridTemplateColumn HeaderText="Status">
                        <ItemTemplate>
                            <asp:Button runat="server" ID="btnServiceStatus" OnClick="btnServiceStatus_OnClick"
                                Text="-"></asp:Button>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn HeaderText="Elapsed time">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblElapsedTime" Text="0">
                            </asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridTemplateColumn HeaderText="Last executed on">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="lblLastTimeExecuted" Text="-">
                            </asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                </Columns>
            </MasterTableView>
        </telerik:RadGrid>

Code behind:
protected void RadGrid1_DetailTableDataBind(object source, Telerik.Web.UI.GridDetailTableDataBindEventArgs e)
        {
            GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
            switch (e.DetailTableView.Name)
            {
                case "MethodName":
                    {
                        e.DetailTableView.DataSource = Method.GetMethods((string)dataItem.GetDataKeyValue("ServiceName"));
                        break;
                    }
 
                case "ParameterName":
                    {
                         //TODO: Get ParentItem
                        e.DetailTableView.DataSource = Parameter.GetParameters((string)dataItem.GetDataKeyValue("MethodName"), (string)parentItem.GetDataKeyValue("ServiceName"));
                        break;
                    }
            }
        }

In the case "ParamenterName", I need to be able to find the parent of the parent of the EventArgs e. Right now I can easily get the immediate parent, what I need is one step above. 

Thanks in advance,

1 Answer, 1 is accepted

Sort by
0
L
Top achievements
Rank 1
answered on 17 Jun 2013, 07:52 PM
This was what I was looking for:
GridDataItem parentItem = (GridDataItem)e.DetailTableView.ParentItem.OwnerTableView.ParentItem;

I answered it myself.
Tags
Grid
Asked by
L
Top achievements
Rank 1
Answers by
L
Top achievements
Rank 1
Share this question
or