AspNetPager分页控件的StartRecordIndex问题

Cool_xiaocao 2010-12-22 10:14:24
最近使用AspNetPager分页控件出现一个奇怪问题,于是对控件做了一些测试
Page_Load事件获取数据的记录数

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AspNetPager1.RecordCount = UserInfoManager.GetRecordCount();
}
Response.Write(AspNetPager1.StartRecordIndex);
}

例如,数据分到有四页,利用Response.Write测试时,页面加载时StartRecordIndex的值为1,点击下一页时,StartRecordIndex的值仍为1,再点一次下一页时,StartRecordIndex的值为6,此时为第三页,正常情况下,第三页时,StartRecordIndex的值应该是11才对啊,请问各位高手,问题究竟出现在哪里呢?
...全文
314 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cool_xiaocao 2010-12-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 webdiyer 的回复:]

这个原因在于StartRecordIndex是通过CurrentPageIndex属性的值计算出来的,而CurrentPageIndex的值在Page的Load事件发生时,因为AspNetPager的PageChanged事件还没有被引发,所以它的值是上次分页后保存在ViewState中的值,也就是上次分页时的页索引,只有在PageChanged事件之后,CurrentPageIndex的值才是……
[/Quote]

那如果我封闭成用户控件,那请问怎么做呢?
webdiyer 2010-12-23
  • 打赏
  • 举报
回复
这个原因在于StartRecordIndex是通过CurrentPageIndex属性的值计算出来的,而CurrentPageIndex的值在Page的Load事件发生时,因为AspNetPager的PageChanged事件还没有被引发,所以它的值是上次分页后保存在ViewState中的值,也就是上次分页时的页索引,只有在PageChanged事件之后,CurrentPageIndex的值才是当前页索引,楼主可以把上面的输入StartRecordIndex值的代码放在AspNetPager的PageChanged事件处理程序中,看看输出是否正确了。
wuyq11 2010-12-22
  • 打赏
  • 举报
回复
点击页面页面回传 执行Response.Write(AspNetPager1.StartRecordIndex
,F11单步就知道了

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧