VS中的DataPager分页

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

winform下的DataPager 显示模式:

VS中的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

 

你可能感兴趣的:(PAGER)