AspNetPager 这个分页控件一般做后台基本都知道的,我就不多说了(说明与下载链接:http://www.webdiyer.com/Controls/AspNetPager),嘿嘿!其实我也是刚刚用这个控件,也遇到了一些问题。
下面我就分享一下我遇到的问题与解决的办法。
1、首先我遇到的第一个问题就是,应用后想跳页,但是找了好几个源码都不对。就是不出来。仔细一对比,少些了一个 ShowInputBox="Always" 属性,下面是完整的代码,可以直接拷贝。
1 <cc1:AspNetPager ID="AspNetPager1" runat="server" Width="100%" UrlPaging="true" FirstPageText="首页" 2 LastPageText="末页" NextPageText="下页" PrevPageText="上页" ShowPageIndexBox="Always" 3 ShowInputBox="Always" PageIndexBoxType="TextBox" HorizontalAlign="right" PageSize="10" 4 NumericButtonCount="6" NumericButtonTextFormatString="{0}" SubmitButtonText="跳转" 5 SubmitButtonStyle="botton" OnPageChanged="pager_PageChanged"> 6 </cc1:AspNetPager>
2、第二个问题,我想显示一下,第几页、共多少页、当前是多少页、然后我疑惑了,后来我发现了另外两个属性可以完成这件事。 CustomInfoHTML=“拼接AspNetPager中相关值” 和ShowCustomInfoSection=“位置”,代码如下:
1 <cc1:AspNetPager ID="AspNetPager1" runat="server" Width="100%" UrlPaging="true" FirstPageText="首页" 2 LastPageText="末页" NextPageText="下页" PrevPageText="上页" ShowPageIndexBox="Always" 3 ShowInputBox="Always" PageIndexBoxType="TextBox" HorizontalAlign="right" PageSize="10" 4 NumericButtonCount="6" NumericButtonTextFormatString="{0}" SubmitButtonText="跳转" 5 CustomInfoHTML="第 <font color='red'><b>%CurrentPageIndex%</b></font> 页 共 %PageCount% 页 显示 %StartRecordIndex%-%EndRecordIndex% 条" 6 ShowCustomInfoSection="left" SubmitButtonStyle="botton" OnPageChanged="pager_PageChanged"> 7 </cc1:AspNetPager>
3、其实第二个问题不解决也行,因为意义不大。接下来遇到的才是真正的问题。我发现根据条件查到结果了,但点击下一页时,又把全部的查出来了,千万不要直接使用上边的代码,我敢保证一定会出错。如何保持搜索的结果,也就是你的条件,ViewState视图状态觉对是首选,现在我们就在后台使用ViewState["Where"]来保存条件。亲!发现问题了吗?
那好如果发现我说的问题了,那就换存储方式吧,当然我想到了Session["Where"],嘿嘿……奇迹出现了,我们的条件分页生效了,但是问题是为什么ViewState["Where"]就不好使呢?
经过我的排查,UrlPaging="true" 这个属性去掉,我们的ViewState["Where"]就好使了。不过去掉之后,Url就不给你干活了,当然方法还有很多,看个人需求。如果要是想要Url 那就使用Session吧!
1 <cc1:AspNetPager ID="AspNetPager1" runat="server" Width="100%" FirstPageText="首页" 2 LastPageText="末页" NextPageText="下页" PrevPageText="上页" ShowPageIndexBox="Always" 3 ShowInputBox="Always" PageIndexBoxType="TextBox" HorizontalAlign="right" PageSize="10" 4 NumericButtonCount="6" NumericButtonTextFormatString="{0}" SubmitButtonText="跳转" 5 SubmitButtonStyle="botton" OnPageChanged="pager_PageChanged"> 6 </cc1:AspNetPager>
后台代码就不粘了,看这篇文章的你绝对后台没问题。