在.NET中,可以使用Pager控件來實現Repeater的分頁。以下是一個示例:
<asp:Pager ID="Pager1" runat="server" PageSize="10" OnPageIndexChanged="Pager1_PageIndexChanged">
<Fields>
<asp:NumericPagerField ButtonType="Link" CurrentPageLabelCssClass="selected" />
</Fields>
</asp:Pager>
<asp:Repeater ID="Repeater1" runat="server">
<!-- Repeater內容 -->
</asp:Repeater>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindRepeater(0); // 初始化綁定第一頁數據
}
}
protected void Pager1_PageIndexChanged(object sender, EventArgs e)
{
int pageIndex = Pager1.CurrentPageIndex - 1;
BindRepeater(pageIndex); // 根據頁碼綁定對應的數據
}
private void BindRepeater(int pageIndex)
{
// 根據pageIndex從數據庫或其他數據源獲取數據
// 假設數據保存在List中
List<string> data = GetDataFromDatabase();
// 計算總頁數
int totalRecords = data.Count;
int pageSize = Pager1.PageSize;
int totalPages = (totalRecords + pageSize - 1) / pageSize;
// 分頁顯示數據
Repeater1.DataSource = data.Skip(pageIndex * pageSize).Take(pageSize);
Repeater1.DataBind();
// 更新Pager控件的總頁數和當前頁碼
Pager1.TotalPages = totalPages;
Pager1.CurrentPageIndex = pageIndex + 1;
}
以上代碼中,我們使用Pager控件的CurrentPageIndex屬性來獲取當前頁碼,然后根據頁碼從數據源中獲取對應的數據,并綁定到Repeater控件中。同時,我們還計算了總頁數,并更新了Pager控件的TotalPages屬性。在Pager1_PageIndexChanged事件中,我們重新綁定Repeater控件,實現了分頁效果。