温馨提示×

.NET中repeater分页怎么应用

小亿
102
2023-09-22 01:04:40
栏目: 编程语言

在.NET中,可以使用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. 在Code-behind文件中,编写代码来绑定Repeater和Pager控件:
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控件,实现了分页效果。

0