微软的DataPager分页功能很强大,不要设置数据库存储过程,只要添加个DataPager控件,关联下要分页的控件,简单设置就可以有不错的分页效果。当然要有更理想的效果还是要前台和后台处理下。

winform下的DataPager 显示模式:

webForm下的样式由TemplatePagerField,NextPreviousPagerField和NumericPagerField控制

通过设置上面几个控件的配合也可以达到winForm下的效果,这3个控件中最重要的是TemplatePagerField控件。

下面简单看看TemplatePagerField控件可以怎么设置:

  1. <%@ Page language="VB" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5.  
  6. <script runat="server">
  7.  
  8. Protected Sub TemplatePagerField_OnPagerCommand(ByVal sender As Object, _
  9. ByVal e As DataPagerCommandEventArgs)
  10.  
  11. ' Check which button raised the event
  12. Select Case e.CommandName
  13.  
  14. Case "Next"
  15. Dim newIndex As Integer = e.Item.Pager.StartRowIndex + e.Item.Pager.PageSize
  16. If newIndex <= e.TotalRowCount Then
  17. e.NewStartRowIndex = newIndex
  18. e.NewMaximumRows = e.Item.Pager.MaximumRows
  19. End If
  20.  
  21. Case "Previous"
  22. e.NewStartRowIndex = e.Item.Pager.StartRowIndex - e.Item.Pager.PageSize
  23. e.NewMaximumRows = e.Item.Pager.MaximumRows
  24.  
  25. Case "First"
  26. e.NewStartRowIndex = 0
  27. e.NewMaximumRows = e.Item.Pager.MaximumRows
  28.  
  29. End Select
  30.  
  31. End Sub
  32.  
  33. </script>
  34.  
  35. <html xmlns="http://www.w3.org/1999/xhtml" >
  36. <head id="Head1" runat="server">
  37. <title>TemplatePagerField.OnPagerCommand Example</title>
  38. <style type="text/css">
  39. body
  40. {
  41. text-align: center;
  42. font: 12px Arial, Helvetica, sans-serif;
  43. }
  44. .item
  45. {
  46. border: solid 1px #2F4F4F;
  47. background: #E6E6FA;
  48. }
  49. </style>
  50. </head>
  51. <body>
  52. <form id="form1" runat="server">
  53.  
  54. <h3>TemplatePagerField.OnPagerCommand Example</h3>
  55.  
  56. <asp:ListView ID="StoresListView"
  57. DataSourceID="StoresDataSource"
  58. runat="server">
  59. <LayoutTemplate>
  60. <table width="350" runat="server" id="tblStore">
  61. <tr runat="server">
  62. <th runat="server">ID</th>
  63. <th runat="server">Store Name</th>
  64. </tr>
  65. <tr id="itemPlaceholder" runat="server">
  66. </tr>
  67. </table>
  68. </LayoutTemplate>
  69. <ItemTemplate>
  70. <tr runat="server">
  71. <td class="item">
  72. <asp:Label ID="IDLabel" runat="server" Text='<%#Eval("CustomerID") %>' />
  73. </td>
  74. <td align="left" class="item">
  75. <asp:Label ID="NameLabel" runat="server" Text='<%#Eval("Name")%>' />
  76. </td>
  77. </tr>
  78. </ItemTemplate>
  79. </asp:ListView>
  80. <br />
  81.  
  82. <asp:DataPager runat="server"
  83. ID="ContactsDataPager"
  84. PageSize="30"
  85. PagedControlID="StoresListView">
  86. <Fields>
  87. <asp:TemplatePagerField OnPagerCommand="TemplatePagerField_OnPagerCommand">
  88. <PagerTemplate>
  89. <asp:LinkButton ID="FirstButton" runat="server" CommandName="First"
  90. Text="<<" Enabled='<%# Container.StartRowIndex > 0 %>' />
  91. <asp:LinkButton ID="PreviousButton" runat="server" CommandName="Previous"
  92. Text='<%# (Container.StartRowIndex - Container.PageSize + 1) & " - " & (Container.StartRowIndex) %>'
  93. Visible='<%# Container.StartRowIndex > 0 %>' />
  94. <asp:Label ID="CurrentPageLabel" runat="server"
  95. Text='<%# (Container.StartRowIndex + 1) & "-" & (IIf(Container.StartRowIndex + Container.PageSize > Container.TotalRowCount, Container.TotalRowCount, Container.StartRowIndex + Container.PageSize)) %>' />
  96. <asp:LinkButton ID="NextButton" runat="server" CommandName="Next"
  97. Text='<%# (Container.StartRowIndex + Container.PageSize + 1) & " - " & (IIf(Container.StartRowIndex + Container.PageSize*2 > Container.TotalRowCount, Container.TotalRowCount, Container.StartRowIndex + Container.PageSize*2)) %>'
  98. Visible='<%# (Container.StartRowIndex + Container.PageSize) < Container.TotalRowCount %>' />
  99. </PagerTemplate>
  100. </asp:TemplatePagerField>
  101. </Fields>
  102. </asp:DataPager>
  103.  
  104. <asp:SqlDataSource ID="StoresDataSource" runat="server"
  105. ConnectionString="<%$ ConnectionStrings:AdventureWorks_DataConnectionString %>"
  106. SelectCommand="SELECT [CustomerID], [Name] FROM Sales.Store ORDER BY [Name]">
  107. </asp:SqlDataSource>
  108.  
  109. </form>
  110. </body>
  111. </html>

参考:https://msdn.microsoft.com/zh-SG/library/system.web.ui.webcontrols.templatepagerfield.pagercommand.aspx

https://msdn.microsoft.com/zh-cn/library/system.windows.controls.datapager(v=VS.95).aspx

VS中的DataPager分页的更多相关文章

  1. SpringMVC结合easyUI中datagird实现分页

    SpringMVC结合easyUI中datagird实现分页 DataGrid以表格形式展示数据,并提供了丰富的选择.排序.分组和编辑数据的功能支持.轻量级,单元格合并.多列标题.冻结列和页脚只是其中 ...

  2. sf中标准的分页功能介绍

    世上本无事,庸人自扰之.我喜欢一个相对比较安静的环境去学习和工作,希望在一个掉一根针的声音都能够听到的环境中,但是有时候往往相反,一片嘈杂,我改变不了周围的环境,只能改变自己,其实这些都没有什么,也许 ...

  3. asp.mvc中的vue分页实例,分页组件无法重置reload,解决点击查询按钮后,分页不刷新的问题

    刚刚接触Vue.js,现在需要做一个查询功能,并且进行服务端分页.主要思路是在页面中注册一个分页组件,然后进行调用.代码如下 1.引用vue.js,具体去网上下载 2.在html的body中添加如下代 ...

  4. winform中DataGridView实现分页功能

    WinForm轻松实现自定义分页 (转载) WinForm轻松实现自定义分页 (转载)   转载至http://xuzhihong1987.blog.163.com/blog/static/26731 ...

  5. 项目中的一个分页功能pagination

    项目中的一个分页功能pagination <script> //总页数 ; ; //分页总数量 $(function () { // $("#pagination"). ...

  6. Oracle中的SQL分页查询原理和方法详解

    Oracle中的SQL分页查询原理和方法详解 分析得不错! http://blog.csdn.net/anxpp/article/details/51534006

  7. GridView中加入//实现分页

    要在GridView中加入//实现分页 AllowPaging="true" PageSize="10" // 分页时触发的事件 protectedvoid g ...

  8. 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件

    分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...

  9. 左键双击关闭pagecontrol中的一个分页即一个tabsheet,功能像遨游浏览器一样

    左键双击关闭pagecontrol中的一个分页即一个tabsheet,功能像遨游浏览器一样 procedure TfrmServerSetup.PageControl1MouseDown(Sender ...

随机推荐

  1. UID, EUID, SUID, FSUID

    摘自:https://blog.csdn.net/wh8_2011/article/details/50825340 UID, EUID, SUID, FSUID 2016年03月08日 10:40: ...

  2. Web实践—Rec 1

    累计完成任务情况: 阶段内容 参与人 开会学习作业要求,取得共识 全体 注: 1."阶段内容"划斜线表示完成.2.采用倒序. 具体情况: 正式开展实践作业之前的说明: 按照之前达成 ...

  3. 使用word写CSDN博客文章

    目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...

  4. Arch Linux freemind中文乱码

    原因:jre没有可用的中文字体 解决方法: (1) 安装中文字体,例如文泉驿微黑 pacman -S wqy-microhei (2) jre字体目录下建立fallback,并链接中文字体作为后备字体 ...

  5. MySQL中如何为查询的数据添加自增序号、顺序呢?

    背景介绍 很多时候我们在使用mysql查询数据的时候都会遇到一个问题,就是查询出来了一堆数据,但是查询的数据的表并没有序号,然而部分数据库显示工具是有外带序号显示,但是这种序号不是由sql产生的,而是 ...

  6. [CentOS]使用yum命令报出Error: Cannot retrieve repository metadata (repomd.xml) for repository的解决方法

    在一次错误的repo文件rpm -i 之后,执行yum就开始报出 Error: Cannot retrieve repository metadata (repomd.xml) for reposit ...

  7. RabbitMQ.Bus

    一个.netcore下的,十分简单的rabbitmq封装,基于RabbitMQ.Client Nuget https://www.nuget.org/packages/RabbitMQ.Bus/ ht ...

  8. js 日期加一天或者减一天,最简单方法

    通过计算一天的时间戳是多少进行换算:(new Date(new Date().getTime()-86400000)).Format("yyyy-MM-dd hh:mm:ss")

  9. SQL函数(不定时更新)

    sum求和:select sum(a) from table1 group by b   依据b列为a列求和 distinct去除重复:select distinct(a) from table1   ...

  10. MySQL数据库(四)

    操作数据库表的内容: -- 向表中插入数据:insert into table_name values(now(),'a'); insert into student (id,name,sex) va ...