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>