zoukankan      html  css  js  c++  java
  • 利用AspNetPager分页

    分页的方法很多,现在介绍利用AspNetPager进行分页

    一、准备工作

    1.首先需要到准备分页控件AspNetPager.dll,点击这里下载。

    官方网址是:http://www.webdiyer.com/Controls/AspNetPager

    2.利用存储过程进行分页

    -- ============================================= 
    -- Description:    分页,用到了ROW_NUMBER() 
    --      适用于SQL Server 2005及以上数据库 
    -- ============================================= 
    create PROCEDURE [dbo].[proc_SplitPage] 
    @tblName   varchar(255),       -- 表名 
    @strGetFields varchar(1000) = '*', -- 需要返回的列,默认* 
    @strOrder varchar(255)='',      -- 排序的字段名,必填 
    @strOrderType varchar(10)='ASC', -- 排序的方式,默认ASC 
    @PageSize   int = 10,          -- 页尺寸,默认10 
    @PageIndex int = 1,           -- 页码,默认1 
    @strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where) 
    AS
    
    declare @strSQL   varchar(5000)
    
    if @strWhere !='' 
    set @strWhere=' where '+@strWhere
    
    set @strSQL= 
    'SELECT * FROM ('+ 
        'SELECT ROW_NUMBER() OVER (ORDER BY '+@strOrder+' '+@strOrderType+') AS pos,'+@strGetFields+' '+ 
        'FROM '+@tblName+' '+@strWhere+ 
    ') AS sp WHERE pos BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND '+str(@PageIndex*@PageSize)
    
    exec (@strSQL)
    

      

    二、配置AspNetPager控件

    1、在项目中添加对AspNetPager的引用,再把它添加到工具箱中。

    2、拖放到到页面中需要的地方,或者直接手写,需要注意的是在页首加上Register标记

    <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
    

      

    <webdiyer:AspNetPager ID="pager" runat="server" OnPageChanged="pager_PageChanged" CssClass="paginator"
        CurrentPageButtonClass="cpb" FirstPageText="首页" LastPageText="末页" NextPageText="下一页" 
        PrevPageText="上一页" ShowPageIndexBox="Never" PageSize="10"
        CustomInfoHTML="总计%RecordCount%条记录,共%PageCount%页,每页%PageSize%条" AlwaysShow="True" 
        ShowCustomInfoSection="Left">
    </webdiyer:AspNetPager>
    

      

    3、通过Postback方式分页首先要在页面加载的时候计算出数据源的总记录数。

    pager.RecordCount = news.CalcCount();

    在分页事件中进行数据绑定:

    protected void pager_PageChanged(object sender, EventArgs e)
    {
        BindData();
    }
    

      

    在数据绑定方法中,计根据页大小和页码取出对应的数据

    private void BindGridView()
    {
        int pageSize = pager.PageSize;
        int pageIndex = pager.CurrentPageIndex;
    
        GridView1.DataSource = news.Select(pageSize, pageIndex, "");
        GridView1.DataBind();
    }
    

      

    几处需要注意的地方:

    ShowPageIndexBox="Never"  不显示输入文本框进行跳转

    样式可以自己搭配,网上也有现成的CSS代码

    最后效果如图:

    pager

  • 相关阅读:
    Android 应用程序集成FaceBook 登录及二次封装
    Android MVP 设计模式
    java 接口的作用和好处
    Android版本和API Level对应关系
    Android 开源库和项目 2
    高效开发iOS系列 -- 那些不为人知的KVC
    HDU 1019 Least Common Multiple 数学题解
    程序猿喜欢如何的职位描写叙述?
    从零開始搭建微信硬件开发环境全过程——1小时掌握微信硬件开发流程
    Spring ORM数据訪问——Hibernate
  • 原文地址:https://www.cnblogs.com/fanyong/p/2645876.html
Copyright © 2011-2022 走看看