my radgrid had 2 level (use Course_ID as a key to link)
Code as follows:
<telerik:RadGrid ID="RadGrid_TrainingProviderCourse" DataSourceID="LDS_Course" ShowStatusBar="True" AutoGenerateColumns="False" AllowSorting="True" runat="server" AllowPaging="True" GridLines="None" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True" CellSpacing="0" Width="80%" Skin="Windows7"> <PagerStyle Mode="NumericPages"></PagerStyle> <MasterTableView DataSourceID="LDS_Course" DataKeyNames="Course_ID" AllowMultiColumnSorting="True" Width="100%" CommandItemDisplay="Top" Name="Parent" AllowAutomaticDeletes="False" AllowAutomaticInserts="False" AllowAutomaticUpdates="False"> <DetailTables> <telerik:GridTableView DataKeyNames="ID" DataSourceID="LDS_TrainingProviderCourse" Width="100%" runat="server" CommandItemDisplay="Top" Name="SubLevel" > <ParentTableRelation> <telerik:GridRelationFields DetailKeyField="Course_ID" MasterKeyField="Course_ID" /> </ParentTableRelation> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"></ExpandCollapseColumn> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn2"> <HeaderStyle Width="20px"></HeaderStyle> <ItemStyle CssClass="MyImageButton"></ItemStyle> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn SortExpression="Course_Fee_USD" HeaderText="Course_Fee_USD" HeaderButtonType="TextButton" DataField="Course_Fee_USD" UniqueName="Course_Fee_USD" HeaderStyle-Width="200px" FilterControlAltText="Filter Course_Fee_USD column"> <HeaderStyle Width="200px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Course_Fee_IDR" HeaderText="Course_Fee_IDR" HeaderButtonType="TextButton" DataField="Course_Fee_IDR" UniqueName="Course_Fee_IDR" HeaderStyle-Width="200px" FilterControlAltText="Filter Course_Fee_IDR column"> <HeaderStyle Width="200px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Course_ID" Visible="false" HeaderText="Course_ID" DataField="Course_ID" UniqueName="Course_ID" HeaderStyle-Width="200px" FilterControlAltText="Filter Course_ID column"> </telerik:GridBoundColumn> <telerik:GridButtonColumn ConfirmText="Delete this record?" ButtonType="ImageButton" CommandName="Delete" Text="Delete" UniqueName="DeleteColumn"> <HeaderStyle Width="20px"></HeaderStyle> <ItemStyle HorizontalAlign="Center" CssClass="MyImageButton"></ItemStyle> </telerik:GridButtonColumn> </Columns> <EditFormSettings EditFormType="Template"> <EditColumn FilterControlAltText="Filter EditCommandColumn1 column" UniqueName="EditCommandColumn1"> </EditColumn> <FormTemplate> <table id="Table2" cellspacing="2" cellpadding="1" width="50%" border="1" rules="none" style="border-collapse: collapse;"> <tr class="EditFormHeader"> <td style="width:150px"> <asp:Label ID="Label5" Text="Training Provider" runat="server"></asp:Label> </td> <td> <telerik:RadDropDownList ID="rdl_TrainingProvider" runat="server" DataSourceID="LDS_TrainingProvider" DefaultMessage="Please select..." DataValueField="Training_Provider_ID" DataTextField="Internal_Name" > </telerik:RadDropDownList> <asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ControlToValidate="rdl_TrainingProvider" InitialValue="Please Select..." ErrorMessage="Please select a Training Provider."></asp:RequiredFieldValidator> </td> </tr> <tr > <td > <asp:Label ID="lb" Text="Course Fee (USD)" runat="server"></asp:Label> </td> <td> <asp:TextBox ID="tb_Course_Fee_USD" runat="server" Text='<%# Bind("Course_Fee_USD") %>' TabIndex="2"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator8" runat="server" Display="Dynamic" ErrorMessage="Please, enter valid number." ValidationExpression="^(\d|,)*\.?\d*$" ControlToValidate="tb_Course_Fee_USD"> </asp:RegularExpressionValidator> </td> </tr> <tr > <td > <asp:Label ID="Label2" Text="Course Fee (IDR)" runat="server"></asp:Label> </td> <td> <asp:TextBox ID="tb_Course_Fee_IDR" runat="server" Text='<%# Bind("Course_Fee_IDR") %>' TabIndex="2"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator9" runat="server" Display="Dynamic" ErrorMessage="Please, enter valid number." ValidationExpression="^(\d|,)*\.?\d*$" ControlToValidate="tb_Course_Fee_IDR"> </asp:RegularExpressionValidator> </td> </tr> <tr> <td align="right" colspan="2"> <asp:Button ID="btnUpdate" Text='<%# IIf((TypeOf(Container) is GridEditFormInsertItem), "Insert", "Update") %>' runat="server" CommandName='<%# IIf((TypeOf(Container) is GridEditFormInsertItem), "PerformInsert", "Update")%>' > </asp:Button> <asp:Button ID="btnDelete" Text="Delete" runat="server" CausesValidation="False" CommandName="Delete"></asp:Button> <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel"></asp:Button> </td> </tr> </table> </FormTemplate> </EditFormSettings> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> </telerik:GridTableView> </DetailTables> <CommandItemSettings ExportToPdfText="Export to PDF" ShowAddNewRecordButton="False"></CommandItemSettings> <RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"></RowIndicatorColumn> <ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"></ExpandCollapseColumn> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn"> <HeaderStyle Width="20px"></HeaderStyle> <ItemStyle CssClass="MyImageButton"></ItemStyle> </telerik:GridEditCommandColumn> <telerik:GridBoundColumn DataField="Course_ID" FilterControlAltText="Filter Course_ID column" HeaderButtonType="TextButton" HeaderText="Course_ID" ReadOnly="True" SortExpression="Course_ID" HeaderStyle-Width="200px" UniqueName="Course_ID" Visible="false"> <HeaderStyle Width="200px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Course_Name" HeaderText="Course Name" HeaderButtonType="TextButton" DataField="Course_Name" UniqueName="Course_Name" FilterControlAltText="Filter Course_Name column" > </telerik:GridBoundColumn> <telerik:GridBoundColumn SortExpression="Course_Name_Ind" HeaderText="Course Name (Ind)" HeaderButtonType="TextButton" DataField="Course_Name_Ind" UniqueName="Course_Name_Ind" HeaderStyle-Width="200px" FilterControlAltText="Filter Course_Name_Ind column"> <HeaderStyle Width="200px"></HeaderStyle> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn UniqueName="EditCommandColumn1" FilterControlAltText="Filter EditCommandColumn1 column"></EditColumn> </EditFormSettings> <PagerStyle PageSizeControlType="RadComboBox"></PagerStyle> </MasterTableView> <FilterMenu EnableImageSprites="False"></FilterMenu> </telerik:RadGrid> <asp:LinqDataSource ID="LDS_Course" runat="server" ContextTypeName="dcLRDBDataContext" EntityTypeName="" TableName="db_Courses"> </asp:LinqDataSource> <asp:LinqDataSource ID="LDS_TrainingProviderCourse" runat="server" ContextTypeName="dcLRDBDataContext" EntityTypeName="" TableName="db_Training_Providers_Course_Lists" Where="Course_ID == @Course_ID"> <WhereParameters> <asp:Parameter Name="Course_ID" Type="Int32" /> </WhereParameters> </asp:LinqDataSource>How can I get the Course_ID from master/parent when perform insert ?
my code behind:
Protected Sub RadGrid_TrainingProviderCourse_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid_TrainingProviderCourse.ItemCommand RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems() If e.CommandName = RadGrid.InitInsertCommandName Then 'Click Add New Record button Dim editColumn As GridEditCommandColumn = CType(RadGrid_TrainingProviderCourse.MasterTableView.GetColumn("EditCommandColumn"), GridEditCommandColumn) editColumn.Visible = False ElseIf (e.CommandName = RadGrid.RebindGridCommandName AndAlso e.Item.OwnerTableView.IsItemInserted) Then e.Canceled = True Else Dim editColumn As GridEditCommandColumn = CType(RadGrid_TrainingProviderCourse.MasterTableView.GetColumn("EditCommandColumn"), GridEditCommandColumn) If Not editColumn.Visible Then 'Click Cancel button (both Insert and Update mode) editColumn.Visible = True End If Dim ddlTrainingProvider As RadDropDownList = DirectCast(e.Item.FindControl("rdl_TrainingProvider"), RadDropDownList) Dim txt_Course_Fee_USD As TextBox = DirectCast(e.Item.FindControl("tb_Course_Fee_USD"), TextBox) Dim txt_Course_Fee_IDR As TextBox = DirectCast(e.Item.FindControl("tb_Course_Fee_IDR"), TextBox) Dim dc As New dcLRDBDataContext If e.CommandName = "PerformInsert" Then Dim newRecord1 As New db_Training_Providers_Course_List dc.db_Training_Providers_Course_Lists.InsertOnSubmit(newRecord1) If ddlTrainingProvider.SelectedValue <> ddlTrainingProvider.DefaultMessage Then newRecord1.Training_Provider_ID = ddlTrainingProvider.SelectedValue End If newRecord1.Course_Fee_USD = txt_Course_Fee_USD.Text newRecord1.Course_Fee_IDR = txt_Course_Fee_IDR.Text newRecord1.LastUpdateDate = DateTime.Now newRecord1.LastUpdateBy = HttpContext.Current.Session("UserID") dc.SubmitChanges() RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems() RadGrid_TrainingProviderCourse.DataBind() ElseIf e.CommandName = "Update" Then Dim lid As Integer = e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("ID") Dim rec = (From p In dc.db_Training_Providers_Course_Lists Where p.ID = lid).FirstOrDefault If Not rec Is Nothing Then If ddlTrainingProvider.SelectedValue <> ddlTrainingProvider.DefaultMessage Then rec.Training_Provider_ID = ddlTrainingProvider.SelectedValue End If rec.Course_Fee_USD = txt_Course_Fee_USD.Text rec.Course_Fee_IDR = txt_Course_Fee_IDR.Text rec.LastUpdateBy = HttpContext.Current.Session("UserID") rec.LastUpdateDate = DateTime.Now dc.SubmitChanges() End If RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems() RadGrid_TrainingProviderCourse.DataBind() ElseIf e.CommandName = "Delete" Then Dim lid As Integer = e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("ID") Dim rec2 = (From p In dc.db_Training_Providers_Course_Lists Where p.ID = lid).FirstOrDefault If Not IsNothing(rec2) Then dc.db_Training_Providers_Course_Lists.DeleteOnSubmit(rec2) dc.SubmitChanges() End If RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems() RadGrid_TrainingProviderCourse.DataBind() End If dc.Dispose() End IfEnd SubThanks