When I select a row in the RadGrid, a FormView is populated with the details. But when I update the data in the FormView, the data is updated in the RadGrid, but the FormView is no longer visible. I'm guessing because the row selection is lost, even though the selected row remains highlighted due to the js I'm using. How can I fix this issue? I just want the row selection on the RadGrid to remain even after I update, insert, or delete data from the FormView, so that the FormView remains visible.
Here's the RadGrid:
<telerik:RadGrid runat="server" ID="rgVendors" DataSourceID="sdsRgVendors" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" AllowFilteringByColumn="True" ShowGroupPanel="True" OnSelectedIndexChanged="rgVendors_OnSelectedIndexChanged"> <ClientSettings AllowDragToGroup="True" AllowColumnsReorder="True" ReorderColumnsOnClient="True" EnablePostBackOnRowClick="True"> <Selecting AllowRowSelect="True"></Selecting> <ClientEvents OnRowCreated="rgVendors_RowCreated" OnRowSelected="rgVendors_RowSelected" OnRowDeselected="rgVendors_RowDeselected" /> </ClientSettings> <MasterTableView ClientDataKeyNames="venIdPk" DataKeyNames="venIdPk" DataSourceID="sdsRgVendors"> <Columns> <telerik:GridBoundColumn DataField="venIdPk" ReadOnly="True" HeaderText="venIdPk" SortExpression="venIdPk" UniqueName="venIdPk" DataType="System.Int32" FilterControlAltText="Filter venIdPk column"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venNm" HeaderText="Vendor" SortExpression="venNm" UniqueName="venNm" FilterControlAltText="Filter venNm column" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True" ItemStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venAddress" HeaderText="Address" SortExpression="venAddress" UniqueName="venAddress" FilterControlAltText="Filter venAddress column" ReadOnly="True" AllowFiltering="False" AllowSorting="False" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True" ItemStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venCity" HeaderText="City" SortExpression="venCity" UniqueName="venCity" FilterControlAltText="Filter venCity column" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True" ItemStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="stateProvAcro" HeaderText="State/Province" SortExpression="stateProvAcro" UniqueName="stateProvAcro" FilterControlAltText="Filter stateProvAcro column" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True" ItemStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venZipCode" HeaderText="Zip Code" SortExpression="venZipCode" UniqueName="venZipCode" FilterControlAltText="Filter venZipCode column" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True" ItemStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="venPh" HeaderText="Phone" SortExpression="venPh" UniqueName="venPh" FilterControlAltText="Filter venPh column" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True" ItemStyle-HorizontalAlign="Center"></telerik:GridBoundColumn> <telerik:GridCheckBoxColumn DataField="venActive" HeaderText="Active" SortExpression="venActive" UniqueName="venActive" DataType="System.Boolean" FilterControlAltText="Filter venActive column" AllowFiltering="False" AllowSorting="False" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True" ItemStyle-HorizontalAlign="Center"></telerik:GridCheckBoxColumn> </Columns> </MasterTableView> <AlternatingItemStyle BackColor="#DCDCDC"></AlternatingItemStyle> </telerik:RadGrid>Here's part of the FormView:
<asp:FormView runat="server" ID="fvVenDets" DataKeyNames="venIdPk" DataSourceID="sdsFvVenDets" OnItemCommand="fvVenDets_OnItemCommand" OnItemUpdated="fvVenDets_OnItemUpdated" OnItemInserted="fvVenDets_OnItemInserted" OnItemDeleted="fvVenDets_OnItemDeleted"> <ItemTemplate>...</ItemTemplate> <EditItemTemplate>...</EditItemTemplate> <InsertItemTemplate>...</InsertItemTemplate></asp:FormView>Here's the js to maintain the row selection:
<script type="text/javascript"> var selected = {}; function rgVendors_RowSelected(sender, args) { var venid = args.getDataKeyValue("venIdPk"); if (!selected[venid]) { selected[venid] = true; } } function rgVendors_RowDeselected(sender, args) { var venid = args.getDataKeyValue("venIdPk"); if (selected[venid]) { selected[venid] = null; } } function rgVendors_RowCreated(sender, args) { var venid = args.getDataKeyValue("venIdPk"); if (selected[venid]) { args.get_gridDataItem().set_selected(true); } } </script>