VS中的DataPager分页

微软的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

时间: 2024-10-23 17:14:16

VS中的DataPager分页的相关文章

ASP.NET中ListView用DataPager分页

最近在维护一个以前的项目,项目中用到ListView,在ListView的分页中用的是DataPager.最开始我将数据绑定放到了Page_Load事件中,数据的加载等都很正常,显示也没有问题,就是在点击分页按钮的时候分页总是不正确,这个问题困扰了我几天,期间我也想换用AspNetPager分页控件,在一次偶然的机会我搜索到ListView结合DataPager分页,其中关键的一句: 注意:使用本方法,不需要在页面的Page_Load事件中绑定数据到ListView控件,否则分页会有问题. 我将

创建有输出参数的存储过程并在c#中实现DataGridView分页功能

不足之处,欢迎指正! 创建有输出参数的存储过程 if exists(select * from sysobjects where name='usp_getPage1') drop procedure usp_getPage1 go create procedure usp_getPage1--存储过程名称 @count int output,--输出参数 @countIndex int=1,--参数带默认值 @countPage int=5--参数带默认值 as --一个sql语句.ROW_N

在 asp.net mvc中的简单分页算法

//第一步:建立如下分页实体类:namespace MVCPager.Helpers { /// <summary> /// 简单分页算法类 /// </summary> public class Pager { public int RecordCount { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int PageCount { get { r

MySQL与Oracle中的基本分页

MySQL中的基本分页: select ename from emp where xxxxx order by sal  desc limit (pageno-1)*pageSize,pageSize; Oracle中的基本分页 select tt.* from ( select t.*,rownum as  linenum from (select  * from  tbl_role) t where rownum <#{0}*#{1} )tt where linenum  >(#{0}-1

winform中DataGridView实现分页功能

http://liyaguang20111105.blog.163.com/blog/static/19929420220146283255809/ 在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource.BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现.红色区域是对BindingNavigator控件扩展后的效果. 具体实现过程 : //窗体构造方

ASP.NET中实现Ajax分页

在页面中指定一个div容器来接收动态生成的分页数据: 1 <div id="div_menu"> 2 </div> 使用jQuery来请求并处理Json格式数据: 1 //定义页码与页容量 2 var pageIndex = 1; 3 var pageSize = 15; 4 var pageCount = 0; 5 var recordCount = 0; 6 AjaxGetData(pageIndex, pageSize); 7 //Ajax获取数据 8 f

实现数据在前台动态显示之分页的实现(将DataSet中的数据分页显示)

在实现前台动态显示数据时有多种方法,但使用到将DataSet中的数据分页这一方法时发现很多地方都能用得到,在这里记录一下. /// <summary> /// 分页的实现(将DataSet中的数据分页显示) /// </summary> /// <param name="ds"></param> /// <returns></returns> public DataSet SplitDataSet() { Data

sf中标准的分页功能介绍

世上本无事,庸人自扰之.我喜欢一个相对比较安静的环境去学习和工作,希望在一个掉一根针的声音都能够听到的环境中,但是有时候往往相反,一片嘈杂,我改变不了周围的环境,只能改变自己,其实这些都没有什么,也许是我内心就很嘈杂,使我听到一点点声音就感觉很烦躁.上善若水,心静则情静继而人静. 言归正传: sf中标准的分页功能: sf有自己标准的分页功能,sf真是个功能相当完善的云端开发平台,其有好多自己标准的功能,今天我就根据自己的理解先介绍一下sf标准的分页功能的皮毛. 定义关联到前台的Contet值 p

Launcher源码学习 PageView中的ScrollIndicator分页指示器

看Launcher2源码忽然看到分页指示器,想看看源码,于是记录下看代码的过程 直接看代码了,Launcher2中的PageView.java可以说是Launcher2中非常核心的代码了,因为可以说Launcher2的页面显示和滑动可以说是支撑了整个Launcher风格的一个核心,因此很多人在应用中都会参考PageView的很多地方做滑动或者页面显示等操作. 今天看的是其中一个功能,分页指示器的代码,先看Launcher.xml中的布局 <include android:id="@+id/