【asp.net】如何动态生成分页 比如一共有5页就显示:1 2 3 4 5 如果有8页就显示:1 2 3 4 5 下一页点击下一页就显示:上一页 6 7 8大概就是这样的,麻烦给位大侠说下实现思路,或者给个案例么?分页动态生成页码ASP.NET 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用的repeater,显示数据列表的一个页面,可以获取到一共有多少页,但是我不知道如何动态生成按钮.. 界面放个lable,然后后台StringBuilder拼分页语句。 这有啥思路,小学数学,基本乘除,余数,商。你小学过关这个就过关实在不行,那么请看这里http://blog.greatrexpectations.com/2012/07/11/paging-lists-with-knockout/knockout 利用knockout和模版生成分页控制你看这文章就明白了,核心部分就是基本乘除法,至于UI显示,那个不是啥问题,利用knockout和模版只是一种手段而已,你明白后面那串乘除法换其他的玩意也是一样控制 最简单的分页我会做,比如那种,只有上一页,下一页,最后一页,首页,跳转第N页,只要是不会生成按钮那些, 现在我在网上找到一个, /// <param name="total">总记录数</param> /// <param name="per">每页记录数</param> /// <param name="page">当前页数</param> /// <param name="query_string">Url参数</param>public static 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 < endcount) { endcount = allpage; }//页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内 pagestr = "共" + allpage + "页 "; pagestr += page > 1 ? "<a href=\"" + query_string + "?page=1\">首页</a> <a href=\"" + query_string + "?page=" + pre + "\">上一页</a>" : "首页 上一页"; //中间页处理,这个增加时间复杂度,减小空间复杂度 for (int i = startcount; i <= endcount; i++) { pagestr += page == i ? " <font color=\"#ff0000\">" + i + "</font>" : " <a href=\"" + query_string + "?page=" + i + "\">" + i + "</a>"; } pagestr += page != allpage ? " <a href=\"" + query_string + "?page=" + next + "\">下一页</a> <a href=\"" + query_string + "?page=" + allpage + "\">末页</a>" : " 下一页 末页"; pagestr += " <select onchange=\"javascript:window.location=this.value\" >"; for (int i = 1; i <= allpage; i++) { if (i == page) { pagestr += "<option value=\"" + query_string + "?page=" + i + "\" selected>第" + i + "页</option>"; } else { pagestr += "<option value=\"" + query_string + "?page=" +i + "\" >第" + i + "页</option>"; } } pagestr += "</select>"; return pagestr; }最后返回了字符串,用response.white()在前台生成了,但是有听他们response.white()容易影响框架.... 用AspNetPager插件吧,可以很轻松实现你要的功能http://www.webdiyer.com/Controls/AspNetPager/Downloads 怎么用SQLHelper类 DataList数据绑定——字数限制 急!!!关于ASP.NET调用sql server中的自定义函数问题 创建文件问题 点击button按钮 页面为空 异常详细信息: System.ArgumentOutOfRangeException: 长度不能小于 0。参数名: length 关于数据库连接问题`~ 字符串替换问题 怎么样写正则表达式控制上传时只能上传doc,rar,zip等类型的文件 论坛帖子置顶是怎样做的? 网页上的视频怎么让他兼容手机播放啊 定义一个类不能调用
knockout 利用knockout和模版生成分页控制你看这文章就明白了,核心部分就是基本乘除法,至于UI显示,那个不是啥问题,利用knockout和模版只是一种手段而已,你明白后面那串乘除法换其他的玩意也是一样控制
只要是不会生成按钮那些, 现在我在网上找到一个,
/// <param name="total">总记录数</param>
/// <param name="per">每页记录数</param>
/// <param name="page">当前页数</param>
/// <param name="query_string">Url参数</param>
public static 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 < endcount) { endcount = allpage; }//页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内
pagestr = "共" + allpage + "页 ";
pagestr += page > 1 ? "<a href=\"" + query_string + "?page=1\">首页</a> <a href=\"" + query_string + "?page=" + pre + "\">上一页</a>" : "首页 上一页";
//中间页处理,这个增加时间复杂度,减小空间复杂度
for (int i = startcount; i <= endcount; i++)
{
pagestr += page == i ? " <font color=\"#ff0000\">" + i + "</font>" : " <a href=\"" + query_string + "?page=" + i + "\">" + i + "</a>";
}
pagestr += page != allpage ? " <a href=\"" + query_string + "?page=" + next + "\">下一页</a> <a href=\"" + query_string + "?page=" + allpage + "\">末页</a>" : " 下一页 末页";
pagestr += " <select onchange=\"javascript:window.location=this.value\" >";
for (int i = 1; i <= allpage; i++)
{
if (i == page)
{
pagestr += "<option value=\"" + query_string + "?page=" + i + "\" selected>第" + i + "页</option>";
}
else
{
pagestr += "<option value=\"" + query_string + "?page=" +i + "\" >第" + i + "页</option>";
}
}
pagestr += "</select>";
return pagestr;
}最后返回了字符串,用response.white()在前台生成了,
但是有听他们response.white()容易影响框架....
用AspNetPager插件吧,可以很轻松实现你要的功能
http://www.webdiyer.com/Controls/AspNetPager/Downloads