asp.net LINQ实现数据分页

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;

public partial class _Default : System.Web.UI.Page
{
    LinqDBDataContext lqDB = new LinqDBDataContext();
    int pageSize = 3;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            ViewState["pageindex"] = 0;
            bindGrid();
        }
    }

    protected void bindGrid()
    {
        int pageindex = Convert.ToInt32(ViewState["pageindex"]);
        var result = (from v in lqDB.news
                      select new
      {
          编号=v.id,
          内容 = v.content
      }
                        ).Skip(pageSize*pageindex).Take(pageSize);
        GridView1.DataSource = result;
        GridView1.DataBind();
        linkbtnBottom.Enabled = true;
        linkbtnFirst.Enabled = true;
        linkbtnUP.Enabled = true;
        linkbtnDown.Enabled = true;
        if (Convert.ToInt32(ViewState["pageindex"]) == 0)
        {
            linkbtnFirst.Enabled = false;
            linkbtnUP.Enabled = false;
        }
        if (Convert.ToInt32(ViewState["pageindex"]) == getCount() - 1)
        {
            linkbtnBottom.Enabled = false;
            linkbtnDown.Enabled = false;
        }

    }


    protected int getCount()
    {
        int sum = lqDB.news.Count();
        int s1 = sum / pageSize;
        int s2 = sum % pageSize > 0 ? 1 : 0;
        int count = s1 + s2;
        return count;
    }
    protected void linkbtnFirst_Click(object sender, EventArgs e)
    {
        ViewState["pageindex"] = 0;
        bindGrid();
    }
    protected void linkbtnUP_Click(object sender, EventArgs e)
    {
        ViewState["pageindex"] = Convert.ToInt32(ViewState["pageindex"]) - 1;
        bindGrid();
    }
    protected void linkbtnDown_Click(object sender, EventArgs e)
    {
        ViewState["pageindex"] = Convert.ToInt32(ViewState["pageindex"]) + 1;
        bindGrid();
    }
    protected void linkbtnBottom_Click(object sender, EventArgs e)
    {
        ViewState["pageindex"] =getCount() - 1;
        bindGrid();
    }
}

 

posted @ 2016-12-18 16:47  清风白水  阅读(884)  评论(0编辑  收藏  举报