asp.net Telerik控件实现分页不丢失记录

#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


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值