zoukankan      html  css  js  c++  java
  • DataList分页

    DataList没有内置分页功能,所以我们需要手动来进行分页。
    如果用SqlServer则可以用它的存储过程分页,代码如下:
    USE [OMS_NET]
    GO
    /****** 对象:  StoredProcedure [dbo].[mp_DivPageBySql]    脚本日期: 02/12/2007 09:55:13 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    CREATE procedure [dbo].[mp_DivPageBySql]
     
    @strSql varchar(8000),--sql语句,比如select * from tUser或exec mp_StoreProcedure
     @nPageSize int,--表示每页的条数
     @nPageCount int--表示返回哪一页
    as
        
    SET NOCOUNT ON 
        
    DECLARE @P1 INT,
        
    @nRowCount INT 

        
    --//注意:@scrollopt = 1 会取得Select的时候的总行数
        EXEC sp_cursoropen @P1 OUTPUT, @strSql@scrollopt = 2@ccopt = 335873@rowcount = @nRowCount OUTPUT

        
    IF (@P1 != 0)
        
    BEGIN
            
    --SELECT @nRowCount AS nRecordCount, ceiling(1.0 * @nRowCount / @nPageSize) AS nPageCount, @nPageCount AS nPage
            SET @nPageCount = (@nPageCount - 1* @nPageSize + 1 
            
    EXEC sp_cursorfetch @P132@nPageCount@nPageSize  
            
    EXEC sp_cursorclose @P1
        
    END

    如果用Excel等没有这个存储过程的数据库,我们还可以用下面的方法分页:
    首先自己写一个填充Datalist的过程,注意此时不要把获取数据的select放到AccessDataSource里了。
        /// <summary>
        
    /// 普通获取数据
        
    /// </summary>

        public void BuildGrid()
        
    {
            OleDbConnection myCon 
    = new OleDbConnection(ConfigurationManager.AppSettings["ConnectionString"]);
            OleDbDataAdapter myAdapter 
    = new OleDbDataAdapter("SELECT * FROM vPingLun order by id", myCon);
            DataSet ds 
    = new DataSet();
            
    int startRecord = (CurrentPage - 1* PageItem;//其中CurrentPage是当前页码,可以用QueryString传入;PageItem是每页的条数
            myAdapter.Fill(ds, startRecord, PageItem, "Paging");
            dataLst.DataSource 
    = ds.Tables["Paging"].DefaultView;
            dataLst.DataBind();
            myCon.Close();
        }

    这样只需在PageLoad的时候执行一下BuildGrid();就可以了。下面要做的就是生成页码的html代码:
    生成分页
  • 相关阅读:
    “零接触”新需求,如何快速实现体温检测数字化管控方案?
    AR公共安全及应急指挥中的应用 | TVP思享
    当模板方法遇到了委托函数,你的代码又可以精简了
    为什么要用内插字符串代替string.format
    如何让多个不同类型的后端网站用一个nginx进行反向代理实际场景分析
    8天入门docker系列 —— 第八天 让程序跑在swarm集群上
    8天入门docker系列 —— 第七天 让你的container实现跨主机访问
    8天入门docker系列 —— 第六天 搭建自己的私有镜像仓库Registry
    8天入门docker系列 —— 第五天 使用aspnetcore小案例熟悉容器互联和docker-compose一键部署
    8天入门docker系列 —— 第四天 使用aspnetcore小案例熟悉端口映射和挂载目录
  • 原文地址:https://www.cnblogs.com/vagerent/p/751258.html
Copyright © 2011-2022 走看看