
i am using Hierarchial Grid(3 levels).
in the first level i am using session parameter to fetch the records .
for the second level i am passing the first level DataKeyName as selectparameter to fetch records. i have attached the screenshot of the Grid.
i have written insertcommand for the second level where i need MetricMeasureNumber to add new record .
in insertcommand i have used
GridEditFormInsertItem item = (GridEditFormInsertItem)e.Item;
MetricMeasureNumber =
Convert.ToInt32((item["MetricMeasureNumber"].Controls[0] as TextBox).Text);
to get the MetricMeasureNumber,but it is giving null,
please share your experiences,
thanks in advance.
3 Answers, 1 is accepted

Try the following code snippet and see if it works.
C#:
protected
void
RadGrid1_InsertCommand(
object
sender, GridCommandEventArgs e)
{
GridEditFormInsertItem item = (GridEditFormInsertItem)e.Item;
GridTableView childtable=(GridTableView)item.OwnerTableView;
GridDataItem parentitem = (GridDataItem)childtable.ParentItem;
Int32 MetricMeasureNumber =Convert.ToInt32(parentitem[
"MetricMeasureNumber"
].Text);
}
Thanks,
Princy.

thanks for your post, it was really helpful
this is how i traced MetricMeasureNumber
string
strMetricMeasureNumber = parentItem.OwnerTableView.DataKeyValues[parentItem.ItemIndex]["MetricMeasureNumber"
Now ,one thing what i want is third level for the same grid.Please find the attachment for 3rd level.
below is my .aspx page code.in 3rd level i m not getting any data.in 3rd level i am trying to bind Datasource to a ListBox.
<
telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" DataSourceID
Skin="WebBlue" ShowStatusBar="True" AutoGenerateColumns="False" PageSize
AllowSorting="True" AllowPaging="True" AllowAutomaticDeletes="True" AllowAutomaticInserts
AllowAutomaticUpdates="True" OnUpdateCommand="RadGrid1_UpdateCommand" OnInsertCommand
OnItemInserted="RadGrid1_ItemInserted" OnItemDeleted="RadGrid1_ItemDeleted" OnItemUpdated
AllowFilteringByColumn
<PagerStyle Mode="NumericPages"></PagerStyle
<MasterTableView AutoGenerateColumns="False" DataKeyNames="MetricMeasureNumber" DataSourceID
CommandItemDisplay="Top" Name
<DetailTables
<telerik:GridTableView DataKeyNames="MetricMeasureFilterNumber" DataSourceID
Width="100%" runat="server" CommandItemDisplay="Top" Name
<ParentTableRelation
<telerik:GridRelationFields DetailKeyField="MetricMeasureNumber" MasterKeyField="MetricMeasureNumber"
</ParentTableRelation
<DetailTables
<telerik:GridTableView DataKeyNames="FilterNumber" DataSourceID
Width="100%" runat="server" CommandItemDisplay="Top" Name
<ParentTableRelation
<telerik:GridRelationFields DetailKeyField="MetricMeasureFilterNumber" MasterKeyField="MetricMeasureNumber"
</ParentTableRelation
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings
<RowIndicatorColumn FilterControlAltText
</RowIndicatorColumn
<ExpandCollapseColumn FilterControlAltText
</ExpandCollapseColumn
<Columns
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName
<HeaderStyle Width="20px"
<ItemStyle CssClass="MyImageButton"
</telerik:GridEditCommandColumn>
<telerik:GridTemplateColumn HeaderText="Filter Value" UniqueName
<ItemTemplate>
<asp:ListBox ID="lstbxFilterValue" runat="server" DataSourceID="SqlDataSource5" DataTextField
DataValueField="FilterNumber"></asp:ListBox
</ItemTemplate
<EditItemTemplate
<asp:ListBox ID="lstbxFilterValue" runat="server" DataSourceID="SqlDataSource5"></asp:ListBox
</EditItemTemplate
</telerik:GridTemplateColumn
<telerik:GridButtonColumn ConfirmText="Delete this product?" ButtonType
CommandName="Delete" Text="Delete" UniqueName
<HeaderStyle Width="20px"
<ItemStyle HorizontalAlign="Center" CssClass="MyImageButton"
</telerik:GridButtonColumn
</Columns
<EditFormSettings
<EditColumn FilterControlAltText
</EditColumn
</EditFormSettings
</telerik:GridTableView
</DetailTables
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings
<RowIndicatorColumn FilterControlAltText
</RowIndicatorColumn
<ExpandCollapseColumn Visible="True" FilterControlAltText
</ExpandCollapseColumn
<Columns
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName
<HeaderStyle Width="20px"
<ItemStyle CssClass="MyImageButton"
</telerik:GridEditCommandColumn
<telerik:GridBoundColumn SortExpression="MetricMeasureNumber" HeaderText
ReadOnly="true" HeaderButtonType="TextButton" DataField
UniqueName="MetricMeasureNumber" Visible
</telerik:GridBoundColumn
<telerik:GridBoundColumn SortExpression="MetricMeasureFilterNumber" HeaderText
HeaderButtonType="TextButton" ReadOnly="true" DataField
UniqueName="MetricMeasureFilterNumber" Visible
</telerik:GridBoundColumn
<telerik:GridTemplateColumn HeaderText="MetricFilterName" UniqueName
<ItemTemplate
<asp:Label ID="lblMetricFilterName" Width="155px" runat="server" Text='<%# Eval("FilterName") %>'></asp:Label
</ItemTemplate
<EditItemTemplate
<asp:DropDownList ID="ddlMetricFilterName" Width="155px" runat="server" DataTextField
DataValueField="FilterNumber" DataSourceID
</asp:DropDownList
</EditItemTemplate
</telerik:GridTemplateColumn
<telerik:GridTemplateColumn HeaderText="FilterOperator" UniqueName
<ItemTemplate
<asp:Label ID="lblFilterOperator" Width="155px" runat="server" Text='<%# Eval("FilterOperator") %>'></asp:Label
</ItemTemplate
<EditItemTemplate
<asp:DropDownList ID="ddlFilterOperator" Width="155px" runat="server" DataTextField
DataValueField="FilterOperatorNumber" DataSourceID
</asp:DropDownList
</EditItemTemplate
</telerik:GridTemplateColumn
<telerik:GridBoundColumn SortExpression="MetricFilterDisplayOrder" HeaderText
HeaderButtonType="TextButton" DataField="MetricFilterDisplayOrder" UniqueName
</telerik:GridBoundColumn
<telerik:GridBoundColumn SortExpression="ShowFilterValue" HeaderText
HeaderButtonType="TextButton" ReadOnly="true" DataField="ShowFilterValue" UniqueName
Visible
</telerik:GridBoundColumn
<telerik:GridButtonColumn ConfirmText="Delete this product?" ButtonType
CommandName="Delete" Text="Delete" UniqueName
<HeaderStyle Width="20px"
<ItemStyle HorizontalAlign="Center" CssClass="MyImageButton"
</telerik:GridButtonColumn
</Columns
<EditFormSettings
<EditColumn FilterControlAltText
</EditColumn
</EditFormSettings
</telerik:GridTableView
</DetailTables
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings
<RowIndicatorColumn FilterControlAltText
</RowIndicatorColumn
<ExpandCollapseColumn Visible="True" FilterControlAltText
</ExpandCollapseColumn
<Columns
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName
<HeaderStyle Width="20px"
<ItemStyle CssClass="MyImageButton"
</telerik:GridEditCommandColumn
<telerik:GridBoundColumn DataField="MetricMeasureNumber" DataType
HeaderText="MetricMeasureNumber" ReadOnly="True" SortExpression
UniqueName="MetricMeasureNumber" Visible
</telerik:GridBoundColumn
<telerik:GridBoundColumn DataField="MetricMeasureField" HeaderText
SortExpression="MetricMeasureField" UniqueName
</telerik:GridBoundColumn
<telerik:GridBoundColumn DataField="MetricMeasureDescription" HeaderText
SortExpression="MetricMeasureDescription" UniqueName
</telerik:GridBoundColumn
<telerik:GridBoundColumn DataField="MetricMeasureDisplayOrder" DataType
HeaderText="MetricMeasureDisplayOrder" SortExpression
UniqueName
</telerik:GridBoundColumn
<telerik:GridBoundColumn DataField="PipelineMeasure" HeaderText
SortExpression="PipelineMeasure" UniqueName
</telerik:GridBoundColumn
<telerik:GridButtonColumn ConfirmText="Delete this product?" ButtonType
CommandName="Delete" Text="Delete" UniqueName
<HeaderStyle Width="20px"
<ItemStyle HorizontalAlign="Center" CssClass="MyImageButton"
</telerik:GridButtonColumn
</Columns
<EditFormSettings
<EditColumn FilterControlAltText
</EditColumn
</EditFormSettings
</MasterTableView
<FilterMenu EnableImageSprites
</FilterMenu
<HeaderContextMenu CssClass
</HeaderContextMenu
</telerik:RadGrid
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection
ConnectionString="<%$ ConnectionStrings:EAFBREWIP_Con %>" DeleteCommand
InsertCommand
OldValuesParameterFormatString="original_{0}" SelectCommand
UpdateCommand
<SelectParameters
<asp:SessionParameter Name="sesprmMetricNumber" DbType="Int32" SessionField="MetricNumber"
</SelectParameters
<DeleteParameters
<asp:Parameter Name="original_MetricMeasureNumber" Type="Int32"
</DeleteParameters
<UpdateParameters
<asp:Parameter Name="MetricMeasureField" Type="String"
<asp:Parameter Name="MetricMeasureDescription" Type="String"
<asp:Parameter Name="MetricMeasureDisplayOrder" Type="String"
<asp:Parameter Name="PipelineMeasure" Type="String"
<asp:Parameter Name="original_MetricMeasureNumber" Type="Int32"
<asp:Parameter Name="original_MetricMeasureField" Type="String"
<asp:Parameter Name="original_MetricMeasureDescription" Type="String"
<asp:Parameter Name="original_MetricMeasureDisplayOrder" Type="String"
<asp:Parameter Name="original_PipelineMeasure" Type="String"
</UpdateParameters
<InsertParameters
<asp:SessionParameter Name="sesprmMetricNumber" DbType="Int32" SessionField="MetricNumber"
<asp:Parameter Name="MetricMeasureField" Type="String"
<asp:Parameter Name="MetricMeasureDescription" Type="String"
<asp:Parameter Name="MetricMeasureDisplayOrder" Type="Int32"
<asp:Parameter Name="PipelineMeasure" Type="String"
</InsertParameters
</asp:SqlDataSource
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:EAFBREWIP_Con%>
DeleteCommand
OldValuesParameterFormatString="original_{0}" SelectCommand
<SelectParameters
<asp:Parameter Name="MetricMeasureNumber" Type="Int32"
</SelectParameters
<DeleteParameters
<asp:Parameter Name="original_MetricMeasureFilterNumber" Type="Int32"
</DeleteParameters>
<InsertParameters
<asp:Parameter Name="MetricMeasureNumber" Type="Int32"
<asp:Parameter Name="MetricFilterNumber" Type="Int32"
<asp:Parameter Name="FilterOperatorNumber" Type="Int32"
<asp:Parameter Name="MetricFilterDisplayOrder" Type="String"
</InsertParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDSddlFilterOperator" runat="server" ConnectionString="<%$ ConnectionStrings:EAFBREWIP_Con%>
SelectCommand
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:EAFBREWIP_Con%>
SelectCommandType="StoredProcedure" SelectCommand="GetFiltervalue">
<SelectParameters
<asp:Parameter Name="MetricMeasureFilterNumber" Type="Int32"
</SelectParameters
</asp:SqlDataSource
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:EAFBREWIP_Con%>
SelectCommand="SELECT [FilterNumber], [FilterName] FROM [Map_Filter_LookupTable]">
</asp:SqlDataSource>
please share your experiences,
thanks in advance

I guess the problem is ParentTableRelations/DataKeyNames for the MasterTableView/GridTableViews according to the database relations conventions. Please refer the following demo and check whether you have followed the exact conventions mentioned in this demo.
Grid / Declarative Relations
Thanks,
Princy.