前言:

分页,大伙并不陌生
也许你正用着:DataGrid/GridView自带的分页
也许你正用着:网上流传较广的AspnetPager分页控件
也许你正用着:其它同事写的分页控件
又也许:你正是那个写分页控件的人,如果是,现在的你是否回头看过自己当初的源码?感觉?

 

附言:

昨夜,花了两个小时左右,把一个2007年那会写的分页控件,重新优化改造了一下:
cs代码大小从原来的14K,缩减到4K。
原来的分页控件源码:点击下载
 
在看以下正文之前,还是希望能看一下原来的分页控件的源码,这样才能感叹下改造前后的巨大落差。

 

正文:

一:概述

目前分页控件,据个人所知的,有几下几种实现情况:

1:Post篇 [生成N个按钮,每个按钮点击时产生一个Post事件引发分页]

常见方式:控件实现复杂,内渗杂sql语句。
本文方式:反射机制,与sql无关。
遥想当年是配合了atlas的updatepanel实现的无刷新

 

 

2:Get篇 [生成N个链接,每个链接点击时产生一个Get事件引发分页]

方式一:链接分页,常见于参数后面的page=N
方式二:链接分页,Url重写,常见于url参数为 /page/N
方式三:脚本分页,无刷新,链接都采用onclick="js函数"引发ajax回调异步分页。

 

 

二:实现

在具体写实现代码之前,我们上几张图片看一下效果:

分页控件 实战 Post篇

 

分页控件 实战 Post篇

 

分页控件 实战 Post篇

 

分页控件 实战 Post篇

 

分页控件 实战 Post篇

 

说明:

昨夜把代码上传到网络空间时,忘了把样式也传上去,早上下载后发现没样式。

所以样式是自己临时加上去的,大伙自己感知一下效果了就可以了。

 

 

 

下面开始分页控件实现具体步骤:

1:新建一个用户控件:Pager

2:控件前台html

<table id="pager" border="0" cellpadding="0" cellspacing="0" width="100%">
    
<tr>
        
<td>
            
<asp:LinkButton ID="lbtnFirstLink" runat="server" CausesValidation="false" OnClick="ClickEvent">首页</asp:LinkButton>
            
<asp:LinkButton ID="lbtnPrevPage" runat="server" CausesValidation="false"  OnClick="ClickEvent">上一页</asp:LinkButton>
    
            
<asp:Repeater ID="rptNum" runat="server" OnItemCommand="rptNum_ItemCommand">
                
<ItemTemplate>
    
<asp:LinkButton ID="lbtnNum" runat="server" CausesValidation="false" CommandArgument='<%# Container.DataItem %>'
    CssClass='
<%# Convert.ToInt32(Container.DataItem)==PageIndex?"num_yellow":"num_blue"%>' Width="15"><%# Container.DataItem %>
</asp:LinkButton>
                
</ItemTemplate>
            
</asp:Repeater>
      
            
<asp:LinkButton ID="lbtnNextPage" runat="server" CausesValidation="false"  OnClick="ClickEvent">下一页</asp:LinkButton>
            
<asp:LinkButton ID="lbtnLastPage" runat="server" CausesValidation="false"  OnClick="ClickEvent">尾页</asp:LinkButton>
            
<asp:HiddenField ID="hfBindName" runat="server" />
        
</td>
    
</tr>
</table>

相关文章:

  • 2021-09-11
  • 2021-06-16
  • 2022-12-23
  • 2022-02-27
  • 2022-01-08
  • 2021-10-25
  • 2022-12-23
  • 2021-10-30
猜你喜欢
  • 2021-07-04
  • 2021-05-25
  • 2021-11-09
相关资源
相似解决方案