.NET の Repeater にページネーションを適用する方法

Pager コントロールを使って Repeater にページャー機能を追加できます。次のように使用します。

  1. ASPXページで、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>
  1. コードビハインドファイルで、リピーターコントロールとページャーコントロールをバインドするためにコードを記述する。
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コントロールを再バインドしてページングを実現しています。

bannerAds