#region 定义数组
public ArrayList CkList
{
get
{
return (ViewState["cklist"] != null) ? (ArrayList)ViewState["cklist"] : null;
}
set { ViewState["cklist"] = value; }
}
#endregion
#region 每次页面显示前加载数据
protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
Label lbl = e.Item.FindControl("lblRowNumber") as Label;
int currPageIndex = RadGrid1.MasterTableView.CurrentPageIndex;
int pageSize = RadGrid1.MasterTableView.PageSize;
lbl.Text = Convert.ToString(e.Item.ItemIndex + 1 + currPageIndex * pageSize);
GridDataItem item = e.Item as GridDataItem;
CheckBox ck = e.Item.FindControl("chkAll") as CheckBox;
string tid = item.GetDataKeyValue("PK_VIPAddress").ToString();
if (CkList != null)
{
if (CkList.Contains(tid))
{
ck.Checked = true;
}
if (CkList != null)
{
hfRowId.Value = CkList.Count.ToString();
}
}
}
}
#endregion
#region 每次翻页的时候存储选择记录和当前页数,重新绑定radgrid
protected void RadGrid1_PageIndexChanged(object sender, GridPageChangedEventArgs e)
{
SavePhone();
RadGrid1.CurrentPageIndex = e.NewPageIndex;
RadGrid1.Rebind();
}
#endregion
#region 保存当前选择记录
private void SavePhone()
{
ArrayList cklist = null;
if (CkList == null)
{
cklist = new ArrayList();
}
else
{
cklist = CkList;
}
foreach (GridDataItem item in RadGrid1.MasterTableView.Items)
{
string tid = item.GetDataKeyValue("PK_VIPAddress").ToString();
CheckBox ck = item.FindControl("chkAll") as CheckBox;
if (ck.Checked && !cklist.Contains(tid))
{
cklist.Add(tid);
}
else if (!ck.Checked && cklist.Contains(tid))
{
cklist.Remove(tid);
}
this.CkList = cklist;
if (CkList != null)
{
hfRowId.Value = CkList.Count.ToString();
}
}
this.Cache["CkList"] = CkList; //存储选择记录,方便另外页面调用
}
#endregion