I have a formview that is based on the selected row of a grid. For fv_vc.ItemInsert, I would like to set the value of the venIdFk textbox in the formview (fv_vc) to the value of venId in the radgrid's selected row. I am using server-side selection. For example, if venId (Cell[1]) of the grid's selected row is 81, then 81 would be inserted as the value of venIdFk in the formview.
Here's the grid:
<telerik:RadGrid ID="rg_vendors" runat="server" AllowPaging="True" AllowSorting="True" AllowFilteringByColumn="True" ShowGroupPanel="True" Skin="Office2010Silver" CellSpacing="-1" DataSourceID="sdc_rg_vendors" GridLines="Both" OnItemCommand="rg_vendors_ItemCommand" OnPreRender="rg_vendors_PreRender" EnableViewState="true" OnSelectedIndexChanged="rg_vendors_SelectedIndexChanged"> <ClientSettings AllowDragToGroup="True" AllowColumnsReorder="True" ReorderColumnsOnClient="True"> </ClientSettings> <MasterTableView DataSourceID="sdc_rg_vendors" AutoGenerateColumns="False" DataKeyNames="venId" CommandItemDisplay="Top"> <CommandItemSettings ShowExportToExcelButton="true" ShowAddNewRecordButton="false" ShowRefreshButton="false" /> <Columns> <telerik:GridButtonColumn Text="Select" CommandName="Select" ButtonType="LinkButton"></telerik:GridButtonColumn> <telerik:GridBoundColumn DataField="venId" ReadOnly="True" HeaderText="Id" SortExpression="venId" UniqueName="venId" DataType="System.Int32" FilterControlAltText="Filter venId column" Visible="false" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venNm" HeaderText="Vendor" SortExpression="venNm" UniqueName="venNm" FilterControlAltText="Filter venNm column" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venCity" HeaderText="City" SortExpression="venCity" UniqueName="venCity" FilterControlAltText="Filter venCity column" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="stateAbbr" HeaderText="State" SortExpression="stateAbbr" UniqueName="stateAbbr" FilterControlAltText="Filter stateAbbr column" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venZip" HeaderText="Zip Code" SortExpression="venZip" UniqueName="venZip" FilterControlAltText="Filter venZip column" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venPh" HeaderText="Phone" SortExpression="venPh" UniqueName="venPh" FilterControlAltText="Filter venPh column" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="venActive" HeaderText="Active" SortExpression="venActive" UniqueName="venActive" DataType="System.Boolean" FilterControlAltText="Filter venActive column" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center"></telerik:GridCheckBoxColumn> </Columns> </MasterTableView> </telerik:RadGrid>Here's the formview:
<asp:FormView ID="fv_vc" runat="server" DataKeyNames="vcId" DataSourceID="sdc_fv_vc" OnItemInserted="fv_vc_ItemInserted" OnItemDeleted="fv_vc_ItemDeleted" OnItemUpdated="fv_vc_ItemUpdated"> <EmptyDataTemplate> <asp:LinkButton ID="lb_insertitemtemplate" runat="server" OnClick="lb_insertitemtemplate_Click">New Contact</asp:LinkButton> </EmptyDataTemplate> <EditItemTemplate> vcId: <asp:Label Text='<%# Eval("vcId") %>' runat="server" ID="vcIdLabel1" /><br /> vcLn: <asp:TextBox Text='<%# Bind("vcLn") %>' runat="server" ID="vcLnTextBox" /><br /> vcFn: <asp:TextBox Text='<%# Bind("vcFn") %>' runat="server" ID="vcFnTextBox" /><br /> vcEm: <asp:TextBox Text='<%# Bind("vcEm") %>' runat="server" ID="vcEmTextBox" /><br /> vcPh: <asp:TextBox Text='<%# Bind("vcPh") %>' runat="server" ID="vcPhTextBox" /><br /> vcPrimary: <asp:CheckBox Checked='<%# Bind("vcPrimary") %>' runat="server" ID="vcPrimaryCheckBox" /><br /> venIdFk: <asp:TextBox Text='<%# Bind("venIdFk") %>' runat="server" ID="venIdFkTextBox" ReadOnly="true" Visible="false" /><br /> <asp:LinkButton runat="server" Text="Update" CommandName="Update" ID="UpdateButton" CausesValidation="True" /> <asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" ID="UpdateCancelButton" CausesValidation="False" /> </EditItemTemplate> <InsertItemTemplate> vcLn: <asp:TextBox Text='<%# Bind("vcLn") %>' runat="server" ID="vcLnTextBox" /><br /> vcFn: <asp:TextBox Text='<%# Bind("vcFn") %>' runat="server" ID="vcFnTextBox" /><br /> vcEm: <asp:TextBox Text='<%# Bind("vcEm") %>' runat="server" ID="vcEmTextBox" /><br /> vcPh: <asp:TextBox Text='<%# Bind("vcPh") %>' runat="server" ID="vcPhTextBox" /><br /> vcPrimary: <asp:CheckBox Checked='<%# Bind("vcPrimary") %>' runat="server" ID="vcPrimaryCheckBox" /><br /> venIdFk: <asp:TextBox Text='<%# Bind("venIdFk") %>' runat="server" ID="venIdFkTextBox" /><br /> <asp:LinkButton runat="server" Text="Insert" CommandName="Insert" ID="InsertButton" CausesValidation="True" /> <asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" ID="InsertCancelButton" CausesValidation="False" /> </InsertItemTemplate> <ItemTemplate> <asp:Label Text='<%# Eval("vcId") %>' runat="server" ID="vcIdLabel" Visible="false" /> <asp:Label Text='<%# Bind("venIdFk") %>' runat="server" ID="venIdFkLabel" Visible="false" /> <div class="row"> <div class="col-md-3"> <strong>Last Name</strong><br /> <asp:Label Text='<%# Bind("vcLn") %>' runat="server" ID="vcLnLabel" /><br /> </div> <div class="col-md-3"> <strong>First Name</strong><br /> <asp:Label Text='<%# Bind("vcFn") %>' runat="server" ID="vcFnLabel" /><br /> </div> <div class="col-md-3"> <strong>Email</strong><br /> <asp:Label Text='<%# Bind("vcEm") %>' runat="server" ID="vcEmLabel" /><br /> </div> <div class="col-md-2"> <strong>Phone</strong><br /> <asp:Label Text='<%# Bind("vcPh") %>' runat="server" ID="vcPhLabel" /><br /> </div> <div class="col-md-1"> <strong>Primary</strong><br /> <asp:CheckBox Checked='<%# Bind("vcPrimary") %>' runat="server" ID="vcPrimaryCheckBox" Enabled="false" /><br /> </div> </div> <asp:LinkButton runat="server" Text="Edit" CommandName="Edit" ID="EditButton" CausesValidation="False" /> <asp:LinkButton runat="server" Text="Delete" CommandName="Delete" ID="DeleteButton" CausesValidation="False" /> <asp:LinkButton runat="server" Text="New" CommandName="New" ID="NewButton" CausesValidation="False" /> </ItemTemplate> </asp:FormView>My initial thought was to use a hidden field and set it's value based on the grid's SelectedIndexChanged using something like:
hdn_venId.Value = rg_vendors.SelectedRow.Cells[1].Text;
Then I would set the value of venIdFk in the formview's InsertItemTemplate by making it equal to hdn_venId. I would like to avoid the use of hidden fields. Is there a cleaner way of accomplishing this?
Thanks,
J