如何使用中继器调试C#分页程序

问题描述 投票:0回答:1

我无法从我要在网站上实施的帖子中获得期望的结果。我想使用转发器控件进行分页。

我指的是this method (post)以实施(c sharp corner的职位]

问题描述:

  1. 我不想实现存储过程功能,因此我只关注了这篇文章,直到第3步。
  2. 我已将页面大小设置为1,并且我在数据库中有4条记录。

  3. 分页中继器(根据代码为repeater1)已正确显示4页

  4. 问题是,当单击最后一页时,它没有显示结果。为了解释确切的问题,我在this link上放置了错误的代码。

  5. 可以在this link上查看所有4个帖子的列表。 (滚动到页面底部)

引起此问题的主要问题可能是什么?

我采取的步骤:1.我尝试设置pdsData.CurrentPageIndex = 0;到第41行的1(第3步)-问题未解决2.我尝试设置

ViewState["PageNumber"] = Convert.ToInt32(e.CommandArgument); 

as

ViewState["PageNumber"] = Convert.ToInt32(e.CommandArgument)+1; 

问题仍然相同(第61行或第3步)

我愿意接受使用中继器控制来实现有效寻呼的替代方法。我正在使用asp.net 4.5版。

c# pagination repeater paging asprepeater
1个回答
0
投票

我相信代码中的问题出在for循环

for (int i = 1; i <= pdsData.PageCount; i++)  
alPages.Add((i).ToString());

此循环已初始化为i = 1,而索引通常以零开始。我已将此初始化更改为i = 0。这使我的for循环像:

for (int i = 0; i < pdsData.PageCount; i++)  
alPages.Add((i).ToString());

这解决了多余页面为空白的问题。

注意:此解决方案将从0、1、2等(而不是1、2、3等)开始启动寻呼机(底部的页码)。

我通过在.aspx页上的绑定文件中添加一(+1)来解决此问题。参见下面的示例:

<%#Int32.Parse( Container.DataItem.ToString())+1%>

这些编辑使使用中继器的分页没有错误变得流畅。

© www.soinside.com 2019 - 2024. All rights reserved.