This is a migrated thread and some comments may be shown as answers.

persist the checkbox

1 Answer 84 Views
Grid
This is a migrated thread and some comments may be shown as answers.
beeta one
Top achievements
Rank 1
beeta one asked on 08 Jan 2013, 12:25 PM
How to persist the checkbox the radgrid after postback? 

1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 08 Jan 2013, 12:35 PM
Hi,

Try the following code snippet to achieve your scenario.

C#:
protected void CheckChanged(Object sender, System.EventArgs e)
{
    CheckBox box = (CheckBox)sender;
    GridDataItem item = (GridDataItem)box.NamingContainer;
    Hashtable target = null;
 
    if (item.OwnerTableView.DataMember == "Customers")
    {
        target = CustomersChecked;
    }
    else if (item.OwnerTableView.DataMember == "Customers1")
    {
        target = Customers1Checked;
    }
    else
    {
        target = Customers2Checked;
    }
 
    if (box.Checked)
    {
        target[item["CustomerID"].Text] = true;
    }
    else
    {
        target[item["CustomerID"].Text] = null;
    }
}
 
//. . .
 
private Hashtable CustomersChecked
{
    get
    {
        object res = ViewState["_cc"];
        if (res == null)
        {
            res = new Hashtable();
            ViewState["_cc"] = res;
        }
 
        return (Hashtable)res;
    }
}
 
private Hashtable Customers1Checked
{
    get
    {
        object res = ViewState["_cc1"];
        if (res == null)
        {
            res = new Hashtable();
            ViewState["_cc1"] = res;
        }
 
        return (Hashtable)res;
    }
}
 
private Hashtable Customers2Checked
{
    get
    {
        object res = ViewState["_cc2"];
        if (res == null)
        {
            res = new Hashtable();
            ViewState["_cc2"] = res;
        }
 
        return (Hashtable)res;
    }
}
private void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
    if (e.Item is GridDataItem)
    {
        GridDataItem item = e.Item as GridDataItem;
        CheckBox box = (CheckBox)item.FindControl("cbChecked");
        object isChecked = null;
        if (item.OwnerTableView.DataMember == "Customers")
        {
            isChecked = CustomersChecked[item["CustomerID"].Text];
        }
        if (item.OwnerTableView.DataMember == "Customers1")
        {
            isChecked = Customers1Checked[item["CustomerID"].Text];
        }
        if (item.OwnerTableView.DataMember == "Customers2")
        {
            isChecked = Customers2Checked[item["CustomerID"].Text];
        }
        if (isChecked != null)
        {
            box.Checked = (bool)isChecked == true;
        }
    }
}

Please take a look into this for more information.

Regards,
Princy.
Tags
Grid
Asked by
beeta one
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or