分頁控制項 aspnetPager 使用 Entity Framework 的範例

分頁控制項 aspnetPager 使用 Entity Framework 的範例

aspnetPager 這個分頁控制項的範例程式碼中僅有提供 ADO.NET 和 LinqToSQL 的範例,對於現在已習慣使用 Entity Framework 開發的我,寫了一個用 Entity Framework 的範例,算是做個記錄,先看一下執行的畫面

image

這個範例我以 NorthWind 中的 Products 為範例做分頁的呈現(每頁10筆),畫面上使用的控制項有 GridView 和 aspnetPager

以下是範例程式碼,請多指教:

{
    if (!IsPostBack)
    {
        bindGridView();
    }
}

/// <summary>
/// aspnetPager
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void pager_Command(object sender, CommandEventArgs e)
{
    int currentPageIndex = Convert.ToInt32(e.CommandArgument);
    pager.CurrentIndex = currentPageIndex;
    bindGridView();
}

private void bindGridView()
{
    NorthwindEntities entity = new NorthwindEntities();

    int skip = (pager.CurrentIndex - 1) * pager.PageSize;
    int take = pager.PageSize;

    pager.ItemCount = entity.Products.Count();

    var results = (from p in entity.Products
                  orderby p.ProductID
                  select new
                  {
                      productID = p.ProductID,
                      productName = p.ProductName
                  }).Skip(skip).Take(take);

    gvProducts.DataSource = results;
    gvProducts.DataBind();
}

相關閱讀:

Pager Control for ASP.NET