微软的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. Oracle Nested table、Record

    1.如何在PL/SQL中创建和使用Nested table;2.如何在PL/SQL中创建和使用Record; 1.如何在PL/SQL中创建和使用Nested table DECLARE /**创建一个 ...

  2. C#结构(Struct)

    Struct简介: 结构是使用 struct 关键字定义的,与类相似,都表示可以包含数据成员和函数成员的数据结构. 1.结构是一种值类型,并且不需要堆分配. 它都放在堆栈上2.结构的实例化可以不使用 ...

  3. lspci通过系统总线查看硬件设备信息

    lspci - 列出所有PCI设备 PCI 的科普: PCI(Peripheral Component Interconnect),是一种连接电子计算机主板和外部设备的总线标准. 常见的PCI卡包括网 ...

  4. eclipse使用配置

    eclipse设置工作空间为UTF-8(适应中文,避免乱码) windows---preference---general---workspace,修改textfile encoding eclips ...

  5. C99一些特性

    __FILE__   对应代码文件名__LINE__   对应代码行号__DATE____TIME____FUNC__ __FUNCTION__ 在Visual Studio 2005中,默认情况下, ...

  6. Verilog MIPS32 CPU(四)-- RAM

    Verilog MIPS32 CPU(一)-- PC寄存器 Verilog MIPS32 CPU(二)-- Regfiles Verilog MIPS32 CPU(三)-- ALU Verilog M ...

  7. Mathcad操作tips:函数、符号计算

    函数 1. 利用“:”进行函数定义,如 2. 函数支持range variable输入,如 3. 常用数学函数可以在Insert - Function菜单中寻得. 4. 当不确定某个名字是否是函数名时 ...

  8. Sublime Text 3 Settings

    Preferences - Setting User - > : { "font_size": 14, "word_wrap": true, " ...

  9. [gcc warnings] -Wtrigraph warnings

    [gcc warnings] -Wtrigraph warnings 背景 三字符组(trigraph)与双字符组(Digraph)是程序设计语言(如C语言)中3个或者2个字符的序列,在编译器预扫描源 ...

  10. [Erlang03]Erlang有哪些好用的静态分析工具?

    1. dialyzer Dialyzer starts its analysis from either debug-compiled BEAM bytecode or from Erlang sou ...