ASPNETPager条件查询分页的实现

利用ASPNETPager支持URL分页的功能实现条件查询,翻页条件依然存在的效果,不使用viewstate,session之类的东西。

思路:


在条件查询按钮后台代码上进行页面的Redirect,URL为本列表页面的URL?param1=param1value&param2=param2value...

因为ASPNETPager分页的时候是整个页面的重新刷新,条件不会保存,但是,如果加上上述的param之后,该控件分页的时候会自动的带上这些param。那么就可以在后台的代码中进行设置了并按照条件进行查询分页了。

具体实现代码:

重点代码:

查询按钮btnSearch

public partial class AreaList : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                this.SearchData();
            }
        }

        protected void Pager_PageChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Utils.getQueryValue("page")))
            {
                this.SearchData();
            }
        }

        private void SearchData()
        {
            <strong>var list = DictionartFactory.GetList("AreaOperation").AsQueryable();
            string name = Utils.getQueryValue("name");

            if (string.IsNullOrEmpty(name))
            {
                name = this.txtAreaName.Text.CleanSQL();
            }
            else
            {
                this.txtAreaName.Text = name;
            }
            if (!string.IsNullOrEmpty(name))
            {
                list = list.Where(rt => rt.Value.Contains(name));
            }</strong>

            list = list.OrderBy(rt => rt.ID);
            IQueryable<SQLDAL.DictionaryType> listPager = list;
            listPager = list.Skip((this.Pager.CurrentPageIndex - 1) * this.Pager.PageSize).Take(Pager.PageSize);
            this.Pager.RecordCount = list.Count();
            this.rptAreaList.DataSource = listPager;
            this.rptAreaList.DataBind();
        }
       

        <strong>protected void btnSearch_Click(object sender, EventArgs e)
        {
            this.Response.Redirect("arealist.aspx?name=" + this.txtAreaName.Text);
        }</strong>
    }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值