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

ASP.NET 通用分頁控制項:設計時支援、雙模式、完整原始碼

     編輯:ASP.NET 基礎

功能特色

  • 兩種分頁模式:綜合模式(首頁/上頁/頁碼/下頁/末頁/跳轉輸入框)與普通模式(簡潔上下頁)。
  • 完整設計時支援:智慧標籤、屬性視窗分類、自動套用格式、設計時預覽。
  • 豐富樣式屬性:ButtonStyle、TextBoxStyle、LabelStyle、分頁按鈕文字、寬高、邊框、前景背景色。
  • 事件驅動:PageChanged 事件回傳新頁碼,配合 PageIndex、PageSize、RecordCount 屬性實現資料繫結。

效果展示

綜合模式

綜合分頁模式

普通模式

普通分頁模式

設計時支援

智慧標籤 自動套用格式 設計時面板

使用範例

ASPX 頁面

<%@ Register Assembly="Cyclone.CustomPager.Pager" Namespace="Cyclone.CustomPager.Pager" TagPrefix="Cyclone" %>
...
<asp:GridView ID="GridView1" runat="server" AllowPaging="false" ...>...</asp:GridView>
<Cyclone:AspNetPager ID="AspNetPager1" runat="server" 
    PageMode="Numeric" PageSize="15" OnPageChanged="Page_Changed"
    FirstPageText="首頁" PrePageText="上一頁" NextPageText="下一頁" EndPageText="末頁"
    ButtonText="GO" Width="80%" BackColor="#FFE0C0" BorderColor="#FFC0C0" BorderStyle="Solid" BorderWidth="1px" ForeColor="#804040">
    <ButtonStyle CssClass="btn1_mouseout" Width="30px" />
    <TextBoxStyle Width="30px" CssClass="blue_rounded"/>
    <LabelStyle ForeColor="Red" Font-Bold="True" />
</Cyclone:AspNetPager>

後端程式碼

public partial class _Default : System.Web.UI.Page
{
    private List _data = new List();

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        GetData(); // 模擬 1000 筆資料
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            AspNetPager1.PageIndex = 1;
            BindData();
        }
    }

    private void GetData()
    {
        for (int i = 0; i < 1000; i++)
            _data.Add(new User { ID = i + 1, UserName = "用戶" + i, Email = "test@test.com", Address = "北京" });
    }

    protected void Page_Changed(object sender, EventArgs e)
    {
        BindData();
    }

    private void BindData()
    {
        AspNetPager1.RecordCount = _data.Count;
        var pageData = _data.Skip(AspNetPager1.PageSize * (AspNetPager1.PageIndex - 1))
                            .Take(AspNetPager1.PageSize).ToList();
        GridView1.DataSource = pageData;
        GridView1.DataBind();
    }
}

public class User { public int ID { get; set; } public string UserName { get; set; } public string Email { get; set; } public string Address { get; set; } }

控制項核心實作要點(學習參考)

  • IPostBackEventHandler 處理分頁按鈕回傳。
  • ViewState 保存 PageIndex、RecordCount 等狀態。
  • CreateChildControls 動態建立 LinkButton、TextBox、Label 等子控制項。
  • Render 依 PageMode 輸出不同 HTML 結構。
  • 設計時:Designer 類別、ToolboxBitmap、ParseChildren、PersistChildren 屬性實現樣式子標籤持久化。

原始碼下載

完整專案(含設計時組件、測試網站):下載地址

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