文档章节

分页程序

rhythmk
 rhythmk
发布于 2014/08/16 16:36
字数 561
阅读 3
收藏 0

  针对搜索引擎无法识别asp.net的LinkButton 等超链接类控件,让网站的在优化时候出现一定的局限性,下午无聊写了一个分页程序:
效果如下:

代码如下:

Code
DIV.technorati {
    PADDING-RIGHT
: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center
}
DIV.technorati A 
{
    BORDER-RIGHT
: #ccc 1px solid; PADDING-RIGHT: 6px; BACKGROUND-POSITION: 50% bottom; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 6px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; COLOR: rgb(66,97,222); MARGIN-RIGHT: 3px; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid; TEXT-DECORATION: none
}
DIV.technorati A:hover 
{
    BACKGROUND-IMAGE
: none; COLOR: #fff; BACKGROUND-COLOR: #4261df
}
DIV.technorati A:active 
{
    BACKGROUND-IMAGE
: none; COLOR: #fff; BACKGROUND-COLOR: #4261df
}
DIV.technorati SPAN.current 
{
    PADDING-RIGHT
: 6px; PADDING-LEFT: 6px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; COLOR: #000; MARGIN-RIGHT: 3px; PADDING-TOP: 2px
}
DIV.technorati SPAN.disabled 
{
    DISPLAY
: none
}

Code
/// <summary>
/// 分页程序
/// </summary>
/// <param name="_tableName">表名</param>
/// <param name="_id">主键字段名 </param>
/// <param name="_sqlWhere">sql语句的where条件 不带where </param>
/// <param name="_pageIndex">当前页面索引</param>
/// <param name="_pageSize">页面显示数据条</param>
/// <param name="_pageUrl">指向页面的文件,比如"index.aspx"</param>
/// <param name="_itemSize">每次显示分页项目数</param>
/// <returns></returns>
    public string  webPage(string  _tableName,string  _id,string _sqlWhere ,int _pageIndex,int _pageSize,string _pageUrl,int _itemSize)
    {

        StringBuilder sb 
= new StringBuilder();
        sb.Append(
"<div class=\"technorati\">");
       
double _pageCount=0;
        
int pageCount=0;
        
string _pagestr = "";
        
string _sqlCom = "";
        
if (_sqlWhere != "")
        {
            _sqlCom
= "select " + _id + " from " + _tableName + "  where " + _sqlWhere;
        }
        
else {

            _sqlCom 
= "select " + _id + " from " + _tableName;
        }

     DataTable dt
=publicclass.InquirySql(_sqlCom);
        
//没有数据则返回
        if(dt.Rows.Count<1)
            
return "";
        
        
//
        int _DataRowCount=dt.Rows.Count;

        _pageCount
=Convert.ToDouble(_DataRowCount/_pageSize);

        
//获取总页数
       if (Convert.ToDouble(_DataRowCount) / _pageSize > Convert.ToInt32(Convert.ToInt32(_DataRowCount) / _pageSize))
        {
             pageCount
= Convert.ToInt32(Convert.ToInt32(_DataRowCount) / _pageSize) + 1 ;
        }
        
else
        {
            pageCount 
= Convert.ToInt32(_DataRowCount / _pageSize);
        }

        _pagestr 
= "本栏共有:" + _DataRowCount.ToString() + " 条 每页" + _pageSize.ToString() + " 条 当前第" + _pageIndex.ToString() + " 页 / 共" + pageCount.ToString() + " 页 ";

        
if (pageCount == 1)
        {

      
return _pagestr;
 
        }
        sb.Append(_pagestr);

        
if ((_pageIndex - 1)>0)
        sb.Append(
"<a href=\""+_pageUrl+"?page="+Convert.ToString(_pageIndex-1)+"\">上一页 </a>");


    
if (pageCount <= _itemSize)
    {
        
//当前页面之前的页面
        for (int i = 1; i < _pageIndex; i++)
        {
            sb.Append(
"<a href=\"" + _pageUrl + "?page=" + i.ToString() + "\">" + Convert.ToString(i) + "</a>");
        }


        sb.Append(
"<span class=\"current\">" + _pageIndex.ToString() + "</span>");

        
//当前页面之后的页面
        for (int i = (_pageIndex + 1); i <= pageCount; i++)
        {
            sb.Append(
"<a href=\"" + _pageUrl + "?page=" + i.ToString() + "\">" + Convert.ToString(i) + "</a>");
        }
    }
    
else {
    
        
int itemSize=0;
        
if (_itemSize % 2 == 0)
        {
            itemSize 
= _itemSize / 2;
        }
        
else
        {
            itemSize 
= (_itemSize / 2+1;
        }
        
int pageMin= _pageIndex - itemSize;
        
if (pageMin <= 0)
        {
            pageMin 
= 0;
        }
        
//当前页面之前的页面
        for (int i = (pageMin+1); i <_pageIndex; i++)
        {
            sb.Append(
"<a href=\"" + _pageUrl + "?page=" + Convert.ToString(i) + "\">" + Convert.ToString(i) + "</a>");
        }
    sb.Append(
"<span class=\"current\">" + _pageIndex.ToString() + "</span>");

        
//当前页面之后的页面
        int pageMax = _pageIndex+itemSize;
        
if (pageMax >= pageCount)
            pageMax
=pageCount;

      
for (int j = (_pageIndex+1); j < (pageMax+1); j++)
        {
            sb.Append(
"<a href=\"" + _pageUrl + "?page=" + Convert.ToString( j) + "\">" + Convert.ToString(j) + "</a>");
        } 
    }
  
if ((_pageIndex + 1<= pageCount)
       {
            sb.Append(
"<a href=\"" + _pageUrl + "?page=" + Convert.ToString(_pageIndex+1) + "\">" + "下一页" + "</a>");
        }

        sb.Append(
"</div>");
      
return  Convert.ToString(sb);
        
}
  文件下载地址: 分页程序

© 著作权归作者所有

rhythmk
粉丝 1
博文 62
码字总数 40987
作品 0
广州
私信 提问
C# 如何处理Word文档分页——插入、删除、阻止分页

本篇文章将介绍C#编程如何来处理Word分页的方法。操作Word中的分页这里分为几种情况的来介绍: 插入分页 1.1在指定段落末尾插入分页 1.2 在指定字符后插入分页 删除分页 3.阻止表格分页 处理...

E_iceblue
2018/06/28
0
0
Android提高第九篇之SQLite分页表格

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 上次讲的Android上的SQLite分页读取,只用文本框显示数据而已,这次就讲得更加深入些,实现并封装一个SQL分页表格控件,不仅支...

晨曦之光
2012/03/14
497
0
数据库分页和jdbc游标分页性能比较

我一直用的游标分页,也没遇到什么性能问题,就是下边这种: 还有一种就是数据库分页,用row_number之类的,我的问题是,到底是在程序里用游标分页性能好呢还是数据库分页性能好?

wrean2013
2015/08/04
2.1K
2
Winform分页控件最新版本发布,并提供基于DotNetBar界面的版本

该Winform分页控件很早就开发了,一直在我所有的共享软件项目中使用,并得到很多Winform开发者的热爱和支持,其中逐步完善了一些功能及优化。从较早时期的随笔《WinForm界面开发之“分页控件...

长平狐
2012/08/22
192
0
[Windows驱动开发](四)内存管理

一、内存管理概念 1. 物理内存概念(Physical Memory Address) PC上有三条总线,分别是数据总线、地址总线和控制总线。32位CPU的寻址能力为4GB(2的32次方)个字节。用户最多可以使用4GB的真...

simpower
2018/08/21
12
0

没有更多内容

加载失败,请刷新页面

加载更多

【0918】正则介绍_grep

【0918】正则介绍_grep 9.1 正则介绍_grep上 9.2 grep中 9.3 grep下 一、正则介绍 正则是一串有规律的字符串,它使用单个字符串来描述或匹配一系列符合某个语法规则的字符串。 二、grep工具 ...

飞翔的竹蜻蜓
33分钟前
4
0
为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
今天
8
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
今天
4
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
今天
5
0
好程序员Java学习路线分享MyBatis之线程优化

  好程序员Java学习路线分享MyBatis之线程优化,我们的项目存在大量用户同时访问的情况,那么就会出现大量线程并发访问数据库,这样会带来线程同步问题,本章我们将讨论MyBatis的线程同步问...

好程序员官方
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部