代码改变世界

为GridView添加两种自定义分页样式

  Anders Cui  阅读(2252)  评论(1编辑  收藏  举报

GridView的分页功能很不错, 利用DataSource控件我们可以比较轻松地实现分页.此外,我们还可以使用PageTemplate来自定义分页行的样式.很多时候这样就足够了,但如果还是不能满足要求,我们可以扩展GridView,为其添加自定义的分页样式.

本文将给出两种比较常用的分页样式,通过此例,我们也可大致了解自定义分页样式的原理,如果需要添加其它样式,也不会很难了.

这里参考了两篇文章,一是codeprojectUsing a DropDownList Pager, 二是园子里webabcd扩展分页功能. 前一篇是通过重写InitializePager方法来实现, 后一篇是通过重写OnRowCreated来实现的. 通过比较可以发现重写InitializePager是更好的方式, 在此方法中, 我们分页所需的PageSize, PageCount, PageIndex, RecordCount可以轻松获得,这样就突破了对DataSource控件的依赖,这一点比使用OnRowCreated要好.别忘了,GridView正是通过此方法来初始化分页行的.

下面是效果图:



                                                       DropDownList Pager.



                                                       CustomNumeric Pager.

我们借助于ObjectDataSource来分页和排序.ObjectDataSource的声明如下:
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" EnablePaging="true" TypeName="Samples.Service.ProductService"
                SelectCountMethod
="GetTestDataCount" SelectMethod="GetRequiredTestData" StartRowIndexParameterName="skipResults"
                MaximumRowsParameterName
="maxResults" SortParameterName="sortExression"></asp:ObjectDataSource>

StartRowIndexParameterNameMaximumRowsParameterName SortParameterName三个参数是其中的关键.然后设置CustomGridView的PagerType属性,以及各个相关图片的路径.

下面的文件包包含了类CustomGridView和用到的图片: 下载.


编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示