繁体中文
设为首页
加入收藏
当前位置:.Net技术首页 >> Asp.Net开发 >> c#实现google样式的分页

c#实现google样式的分页

2006-12-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  做一个项目,用到了DATALIST,由于分页的需求,手动写了分页的函数。个人觉得GOOGLE的分页很不错,上网查了下资料,修改了下。   这里没有涉及到数据的分页读取,只是返回一个带HTML代码的分页样式(字符串...
关键字:c# 样式 google

  做一个项目,用到了DATALIST,由于分页的需求,手动写了分页的函数。个人觉得GOOGLE的分页很不错,上网查了下资料,修改了下。

  这里没有涉及到数据的分页读取,只是返回一个带HTML代码的分页样式(字符串),可以用label在页面显示,也可以用this.Controls.Add(new LiteralControl(string));方法加入到页面控件中。

/**////

/// 类似GOOGLE的分页函数,王传炜,资料参考http://www.phpx.com/happy/viewthread.php?tid=99280&extra=&page=2,谢谢YourEyes

///

/// 总记录数

/// 每页记录数

/// 当前页数

/// Url参数

private string pagination(int total,int per,int page,string query_string)

{

int allpage=0;

int next=0;

int pre=0;

int startcount=0;

int endcount=0;

string pagestr="";

if(page<1){page=1;}

//计算总页数

if (per != 0)

{

allpage = (total / per);

allpage = ((total % per) != 0 ? allpage + 1 : allpage);

allpage = (allpage == 0 ? 1 : allpage);

}

next=page+1;

pre=page-1;

startcount=(page+5)>allpage?allpage-9:page-4;//中间页起始序号

//中间页终止序号

endcount = page<5 ? 10 : page+5;

if(startcount<1) {startcount=1;} //为了避免输出的时候产生负数,设置如果小于1就从序号1开始

if(allpage

pagestr="共"+ allpage +"页 ";

pagestr+=page>1 ? "首页 上一页": "首页 上一页";

//中间页处理,这个增加时间复杂度,减小空间复杂度

for(int i=startcount;i<=endcount;i++)

{

pagestr+=page==i?" "+i+"":" "+ i +"";

}

pagestr+=page!=allpage ? " 下一页 末页" : " 下一页 末页";

return pagestr;

}

责任编辑:admin
相关文章