首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET GridView 進階教學(二):手動分頁邏輯實現與頁碼跳轉控制

     編輯:關於ASP.NET

核心邏輯

private int PageSize = 10;
private int curPage 
{
    get { return ViewState["curPage"] == null ? 0 : Convert.ToInt32(ViewState["curPage"]); }
    set { ViewState["curPage"] = value; }
}
private int PageCount 
{
    get { return ViewState["PageCount"] == null ? 0 : Convert.ToInt32(ViewState["PageCount"]); }
    set { ViewState["PageCount"] = value; }
}

protected void Page_Load(object sender, EventArgs e) 
{
    if (!IsPostBack) 
    {
        curPage = 1;
        GridView1.DataSource = GetClientsForPage(curPage);
        lblInfo.Text = string.Format("第{0}頁/共{1}頁", 1, PageCount);
        GridView1.DataBind();
    }
}

private List<ClientInfo> GetClientsForPage(int pageIndex) 
{
    var all = new ClientInfoAccessObj().GetAllClients();
    PageCount = all.Count / PageSize + 1;
    if (pageIndex > PageCount) return null;
    int start = (pageIndex - 1) * PageSize;
    return all.GetRange(start, Math.Min(PageSize, all.Count - start));
}

protected void btnNext_Click(object sender, EventArgs e) 
{
    curPage = Math.Min(curPage + 1, PageCount);
    BindPage();
}
protected void btnPrev_Click(object sender, EventArgs e) 
{
    curPage = Math.Max(curPage - 1, 1);
    BindPage();
}
protected void btnGo_Click(object sender, EventArgs e) 
{
    if (int.TryParse(txtPageIndex.Text, out int p)) 
    {
        curPage = Math.Max(1, Math.Min(p, PageCount));
        BindPage();
    }
    else ClientScript.RegisterClientScriptBlock(this.GetType(), "info", "alert('非法字元');", true);
}

private void BindPage() 
{
    GridView1.DataSource = GetClientsForPage(curPage);
    lblInfo.Text = string.Format("第{0}頁/共{1}頁", curPage, PageCount);
    GridView1.DataBind();
}

特色

  • 完全手動控制分頁,不依賴 GridView 內建分頁機制。
  • ViewState 保存頁碼狀態,支援 PostBack 後恢復。
  • 提供下一頁、上一頁、指定頁碼跳轉完整導航。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved