New to Telerik UI for ASP.NET AJAXStart a free 30-day trial

Persisting Client-side Selection with ViewState Disabled (Control state)

When using server-side selection there will be no problems with disabled ViewState, however with client-side selection the selected item will be lost. The grid raises appropriate SelectedIndexChanged event with valid data as SelectedItems and SelectedIndexes.

To avoid such problems when the grid saves its settings in the control state (EnableViewState = false) and client-side selection we suggest you following workaround:

ASP.NET
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" Width="800px" 
    OnSelectedIndexChanged="RadGrid1_SelectedIndexChanged" OnNeedDataSource="RadGrid1_NeedDataSource">
    <MasterTableView AutoGenerateColumns="False" DataKeyNames="OrderID">
        <Columns>
            <telerik:GridBoundColumn DataField="OrderID" DataType="System.Int32"
                FilterControlAltText="Filter OrderID column" HeaderText="OrderID"
                ReadOnly="True" SortExpression="OrderID" UniqueName="OrderID">
            </telerik:GridBoundColumn>
            <telerik:GridDateTimeColumn DataField="OrderDate" DataType="System.DateTime"
                FilterControlAltText="Filter OrderDate column" HeaderText="OrderDate"
                SortExpression="OrderDate" UniqueName="OrderDate">
            </telerik:GridDateTimeColumn>
            <telerik:GridNumericColumn DataField="Freight" DataType="System.Decimal"
                FilterControlAltText="Filter Freight column" HeaderText="Freight"
                SortExpression="Freight" UniqueName="Freight">
            </telerik:GridNumericColumn>
            <telerik:GridBoundColumn DataField="ShipName"
                FilterControlAltText="Filter ShipName column" HeaderText="ShipName"
                SortExpression="ShipName" UniqueName="ShipName">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ShipCountry"
                FilterControlAltText="Filter ShipCountry column" HeaderText="ShipCountry"
                SortExpression="ShipCountry" UniqueName="ShipCountry">
            </telerik:GridBoundColumn>
        </Columns>
    </MasterTableView>
    <ClientSettings>
        <Selecting AllowRowSelect="true" />
    </ClientSettings>
</telerik:RadGrid>
C#
Telerik.Web.UI.GridItem item = null;

private void RadGrid1_SelectedIndexChanged(object sender, EventArgs e)
{
    item = RadGrid1.SelectedItems[0];
}

private void RadGrid1_PreRender(object sender, EventArgs e)
{
    if (item != null)
    {
        item.Selected = true;
    }
}

Where RadGrid1_PreRender is the event handler for RadGrid1.OnPreRender event and RadGrid1_SelectedIndexChanged is the event handler for RadGrid1.OnSelectedIndexChanged event.

Not finding the help you need?
Contact Support