早期 ASP.NET DataGrid 控制項內建分頁功能,操作方式與傳統 ASP 分頁相似。本文提供完整的 .aspx 與分頁邏輯程式碼範例。
<%@ Page Language="c#" Codebehind="DataGridPage.aspx.cs" AutoEventWireup="false" Inherits="netCRM.DataGridPage" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>DataGridPage</title>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" runat="server"
AlternatingItemStyle-BackColor="#eeeeee"
HeaderStyle-BackColor="#aaaadd"
Font-Size="8pt" Font-Name="Verdana"
CellPadding="3" BorderWidth="1px" BorderColor="Black"
PagerStyle-HorizontalAlign="Right"
PagerStyle-Mode="NumericPages"
PageSize="5" Width="100%">
<AlternatingItemStyle BackColor="#EEEEEE" />
<HeaderStyle BackColor="#AAAADD" />
<PagerStyle HorizontalAlign="Right" Mode="NumericPages" />
</asp:DataGrid>
</form>
<!-- 自訂分頁資訊列 -->
<TABLE cellSpacing="0" cellPadding="1" width="100%" bgColor="#aaaadd" border="0">
<TBODY><TR><TD>
<TABLE cellSpacing="0" cellPadding="4" width="100%" bgColor="#fef8e2" border="0">
<TBODY>
<TR><TD class="M" noWrap align="center"><asp:Literal id="Literal1" runat="server"></asp:Literal></TD></TR>
<TR><TD class="C" noWrap align="center"><asp:Literal id="Literal2" runat="server"></asp:Literal></TD></TR>
</TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
</body>
</HTML>
DataGrid1.PageSize 與 PagerStyle.Mode = PagerMode.NumericPages。PageIndexChanged 事件中更新 DataGrid1.CurrentPageIndex 並重新繫結資料來源。Literal 控制項顯示自訂分頁資訊(如總筆數、目前頁碼)。此模式適合資料量較小、全量載入至 DataSet 再分頁的情境。若資料量達百萬筆,建議改用自訂分頁(Custom Paging)或 GridView 搭配 ObjectDataSource 只抓取當頁資料,以節省記憶體與頻寬。