• 列表数据显示+分页


    说明:数据的分页显示,就是根据数据源的总记录数和每页显示的记录数,计算出总共分出的页

    面数,然后根据当前页面的页面号计算出要显示的数据记录的起始范围(即开始记录和终止记录),

    有了这个起始范围就可以方便的显示出当前页面的数据。当前页面号的获取,可以通过URL传值的

    方式传递。例:<a href = ?pages=1>这个URL链接,可以用 Request["pages"]的方式获取

    当前页面号。具体方法参考以下代码:

    /// <summary>                                                                                        
    /// 分页函数                                                                                        
    /// </summary>                                                                                        
    /// <param name="dtRecord">数据源</param>                                                                                        
    private void SplitPage(DataTable dtRecord)                                                                                        
    {                                                                                        
        string htmlPage = "";                                                                                    
        int pageSize = 15;                //每页显示记录数                                                        
        int listStep = 10;                //最多显示分页页数                                                        
        int pages = 1;                    //当前页,默认显示第一页                                                        
        int pageCount = 0;                //定义总页数                                                        
        int recordCount = 0;                //定义总记录数                                                        
        int listBegin = 0;                //从第几页开始显示分页信息                                                        
        int listEnd = 0;                    //分页信息显示到第几页                                                        
                                                                                            
        if (dtRecord == null || dtRecord.Rows.Count == 0)                                                                                    
        {                                                                                    
            return;                                                                                
        
    }                                                                                    
        recordCount = dtRecord.Rows.Count;                                                                                    
                                                                                            
        //确定数据记录要显示的页面数                                                                                    
        if(recordCount > 0)                                                                                    
        
    {                                                                                    
            pageCount = recordCount / pageSize;                                                                                
        
    }                                                                                    
        if(recordCount % pageSize > 0)                                                                                    
        
    {                                                                                    
            pageCount++;                                                                                
        
    }                                                                                    
                                                                                            
        //取得当前页数值,并判断                                                                                    
        if(Request["pages"] != null)                                                                                    
        
    {                                                                                    
            pages = Convert.ToInt32(Request["pages"]);                                                                                
        
    }                                                                                    
        if(pages < 1)                                                                                    
        
    {                                                                                    
            pages = 1;                                                                                
        
    }                                                                                    
        if(pages > pageCount)                                                                                    
        
    {                                                                                    
            pages = pageCount;                                                                                
        
    }                                                                                    
                                                                                            
        listBegin = pages - listStep / 2;     //从第几页开始显示分页信息                                                                                    
        if (listBegin < 1)                                                                                     
        
    {                                                                                    
            listBegin = 1;                                                                                
        
    }                                                                                    
                                                                                            
        listEnd = listBegin + listStep - 1;   //分页信息显示到第几页                                                                                    
        if (listEnd > pageCount)                                                                                     
        
    {                                                                                    
            listEnd = pageCount;                                                                                
            listBegin = listEnd - listStep + 1;                                                                                
                                                                                            
            if (listBegin < 1)                                                                                 
            {                                                                                
                listBegin = 1;                                                                            
            
    }                                                                                
        }                                                                                    
                                                                                            
        //确认当前页面的开始记录和终止记录                                                                                    
        int recordBegin  = pageSize * (pages - 1);                                                                                    
        int recordEnd = recordBegin + pageSize - 1;                                                                                    
        if(recordEnd > recordCount - 1)                                                                                    
        
    {                                                                                    
            recordEnd = recordCount - 1;                                                                                
        
    }                                                                                    
                                                                                            
        //显示数据记录                                                                                    
        htmlPage = DisplayDataRecord(dtRecord, recordBegin, recordEnd);                                                                                    
        Response.Write(htmlPage);                                                                                    
        htmlPage = "";                                                                                    
                                                                                            
        //显示分页列表                                                                                    
        htmlPage +=  GetPageList(pages, pageCount, listBegin, listEnd);                                                                                    
        Response.Write(htmlPage);                                                                                    
        htmlPage = "";                                                                                    
    }                                                                                        
                                                                                            
    /// <summary>                                                                                        
    /// 显示数据记录                                                                                        
    /// </summary>                                                                                        
    /// <param name="dtRecord">数据源</param>                                                                                        
    /// <param name="recordBegin">记录开始位置</param>                                                                                        
    /// <param name="recordEnd">记录结束位置</param>                                                                                        
    /// <returns>HTML字符串</returns>                                                                                        
    private string DisplayDataRecord(DataTable dtRecord, int recordBegin, int recordEnd)                                                                                        
    {                                                                                        
        string html = "";                                                                                    
        for (int i = recordBegin; i <= recordEnd; i++)                                                                                    
        {                                                                                    
            //显示数据记录的内容                                                                                
            html += " …";                                                                                
        
    }                                                                                    
                                                                                            
        return html;                                                                                    
    }                                                                                        
                                                                                            
                                                                                            
    /// <summary>                                                                                        
    ///显示分页列表                                                                                        
    /// </summary>                                                                                        
    /// <param name="pages">当前页</param>                                                                                        
    /// <param name="pageCount">总页数</param>                                                                                        
    /// <param name="listBegin">列表开始页</param>                                                                                        
    /// <param name="listEnd">列表结束页</param>                                                                                        
    /// <returns>HTML字符串</returns>                                                                                        
    public string GetPageList(int pages, int pageCount, int listBegin, int listEnd)                                                                                        
    {                                                                                        
        string html = "";                                                                                    
        html += "<DIV class = pageList>";                                                                                     
                                                                                            
        //显示首页、上一页                                                                                    
        if (pages > 1)                                                                                     
        {                                                                                    
            html += "<a href = ?pages=1>首页</a>";                                                                                
            html += "<a href = ?pages=" + (pages - 1) + ">上一页</a>";                                                                                
        
    }                                                                                    
                                                                                            
        //显示分页码                                                                                    
        for (int i = listBegin; i <= listEnd; i++)                                                                                      
        
    {                                                                                    
            if (i != pages)                                                                                
            {                                                                                
                html += "<a href = ?pages=" + i + ">" + i + "</a>";                                                                            
            
    }                                                                                 
            else                                                                                
            
    {                                                                                
                html += "<b>"+ i + "</b>";                                                                            
            
    }                                                                                
        }                                                                                    
                                                                                            
        //显示末页、下一页                                                                                    
        if (pages != pageCount)                                                                                      
        
    {                                                                                    
            html += "<a href = ?pages=" + (pages + 1) + ">下一页</a>";                                                                                
            html += "<a href = ?pages=" + pageCount + ">末页</a>";                                                                                
        
    }                                                                                    
        html += "</DIV>";                                                                                     
                                                                                            
        return html;                                                                                    
    }                                                                                        
                                                                                            
                                                                                            

     分页形式如下图所示:

  • 相关阅读:
    编译原理之理解文法和语言
    利用微信电脑最新版 反编译微信小程序 无需root
    编译程序与翻译程序、汇编程序的联系与区别,编译过程包括的几个主要阶段,解释程序与编译程序的区别
    New
    自我介绍+软工5问
    Sharepoint + Office Infopart + Quick Apps for Sharepoint搭建无纸化工作平台
    练练脑javascript写直接插入排序和冒泡排序
    TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之二 数据处理
    TodoMVC中的Backbone+MarionetteJS+RequireJS例子源码分析之一
    Django+Tastypie作后端,RequireJS+Backbone作前端的TodoMVC
  • 原文地址:https://www.cnblogs.com/wequst/p/1661250.html
Copyright © 2020-2023  润新知