这两天做帖子列表,用得Repeater+AspNetPager。其中,我要用ViewState保存排序字段和升降序。但是翻页后ViewState就为空了,原来这是因为AspNetPager用的URL传递页码。url变成了:
http://localhost:1495/WebSite/TopicList.aspx?ForumId=1
http://localhost:1495/WebSite/TopicList.aspx?ForumId=2
……
这样每页的url都是变的,相当于翻页后访问了一个新的页面,所有ViewState均会置为空。新页面属于第一次访问,因此:都没有回传(IsPostBack==false)。
这样翻页后我再第一页的排序到了第二页就失效了。
解决办法:AspNetPager有一个UrlPaging属性,用来指定是否使用url传递分页信息的方式来分页。
选择false,则用post替代get来隐式传递页码。这样,url就不会有变化,ViewState仍然存在,翻页后也有了回传(IsPostBack==true)。因此第一页的排序到了第二页也就仍然有效了!
.NET----AspNetPager不使用URL传递分页信息
最新推荐文章于 2017-12-25 13:44:57 发布
