列表数据显示+分页

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

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

有了这个起始范围就可以方便的显示出当前页面的数据。当前页面号的获取,可以通过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;                                                                                    
}                                                                                        
                                                                                        
                                                                                        

 分页形式如下图所示:

原文地址:https://www.cnblogs.com/wequst/p/1661250.html