I have a telerik-radgrid where I use SelectAll. For SelectAll I have used checkbox. The checked status is going off after paging. How can we persist the checked status of Checkbox can retained even after paging.
Asked
Active
Viewed 2,235 times
4
-
I'm assuming you specifically want to persist a user's choice while paging, which by default Telerik RadGrid uses a Postback. However, they should have Ajax functionality or you can save all choices on the page event. Then anchor to the event called by previous or next. – Greg Dec 24 '15 at 14:25
-
Can you provide an example? I may have tried something similar. – Jordan Rhode Dec 28 '15 at 22:04
1 Answers
4
Hi Solved this one....
call checkChanged in checkbox OnCheckedChanged event store checked value in viewstate and on item databond read the value of viewstate.
And here we have .cs code:-
public const string SELECTED_CUSTOMERS_INDEX = "UserIndex";
protected void CheckChanged(Object sender, System.EventArgs e)
{
CheckBox box = (CheckBox)sender;
GridDataItem item = (GridDataItem)box.NamingContainer;
var rowIndex = item.ItemIndex;
var idex = radStoreUsers.MasterTableView.DataKeyValues[rowIndex];
string datakey = idex["Id"].ToString();
if (box.Checked)
{
PersistRowIndex(datakey);
}
else
{
RemoveRowIndex(datakey);
}
}
private void PersistRowIndex(string chkId)
{
if (!SelectedCustomersIndex.Exists(i => i == chkId))
{
SelectedCustomersIndex.Add(chkId);
}
}
private void RemoveRowIndex(string chkId)
{
SelectedCustomersIndex.Remove(chkId);
}
private List<string> SelectedCustomersIndex
{
get
{
if (ViewState[SELECTED_CUSTOMERS_INDEX] == null)
{
ViewState[SELECTED_CUSTOMERS_INDEX] = new List<string>();
}
return (List<string>)ViewState[SELECTED_CUSTOMERS_INDEX];
}
}
protected void radStoreUsers_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = e.Item as GridDataItem;
CheckBox box = (CheckBox)item.FindControl("chkBox");
if (item.OwnerTableView.DataMember == "Users")
{
if (SelectedCustomersIndex != null)
{
foreach(string id in SelectedCustomersIndex)
{
if(item.GetDataKeyValue("Id").ToString() == id)
{
box.Checked = true;
}
}
}
}
}
}

Shibu sen
- 81
- 8