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

初學者適用的 ASP.NET 分頁元件 (PagedDataSource 版)

     編輯:關於.NET

簡易分頁輔助類

基於 PagedDataSource 實作,適合入門學習,邏輯直觀但效能一般 (大數據量建議改用 SQL 分頁)。

核心代碼

public PagedDataSource GetPagedDataSource(DataSet MyDataSet, int PageSize, int PageNum, string AspxName, Label PageLable)
{
    PagedDataSource PDS = new PagedDataSource();
    PDS.AllowPaging = true;
    PDS.PageSize = PageSize;
    PDS.DataSource = MyDataSet.Tables[0].DefaultView;

    int CurrentPage = 0;
    if (!string.IsNullOrEmpty(PageNum.ToString()))
        CurrentPage = int.Parse(PageNum.ToString());
    else
        CurrentPage = 1;

    PDS.CurrentPageIndex = CurrentPage - 1;
    int PageCount = PDS.PageCount;

    // 產生分頁導航 HTML (此處為示意字元,實際專案建議用 HyperLink 或 Repeater)
    string FirstPage = (PageNum == 1) ? "9" : "9";
    string PrevPage = (PageNum == 1) ? "7" : "7";
    string NextPage = (PageNum == PageCount) ? "8" : "8";
    string LastPage = (PageNum == PageCount) ? ":" : ":";

    PageLable.Text = "總記錄: " + PDS.DataSourceCount + "   每頁: " + PageSize + "   總頁數: " + PageCount + "" + FirstPage + "  " + PrevPage + "  " + NextPage + "  " + LastPage + "";
    return PDS;
}

呼叫範例

// 頁面載入
string MySql = "Select * from C_Company";
int PageNum = (Request.QueryString["Page"] == null) ? 1 : Convert.ToInt32(Request.QueryString["Page"]);
DataSet MyDataSet = MyData.GetDataSet(MySql, 0, 0, "Table");

PagedDataSource PDS = MyData.GetPagedDataSource(MyDataSet, 10, PageNum, Request.CurrentExecutionFilePath + "?", Label1);
this.DataGrid1.DataSource = PDS;
this.DataGrid1.DataBind();

改進建議

  • 導航連結改用 HyperLink 或 Repeater 動態產生,支援 SEO 友善 URL。
  • 大數據量請改用 SQL `ROW_NUMBER()` / `OFFSET FETCH` 真正的資料庫分頁。
  • 將分頁邏輯封裝為獨立使用者控制項 (.ascx) 便於複用。

本範例旨在展示 PagedDataSource 基本用法,生產環境請根據效能需求調整。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved