从数据库中读出来,有N行,控制为每页15个,分页显示。
应该怎么实现呢?
如下我们论坛的这类分!(首页 1 2 3 4 5 6 7 8 9 ...尾页 总数:(此表所有数据总和),共(被分成多少页))
应该怎么实现呢?
如下我们论坛的这类分!(首页 1 2 3 4 5 6 7 8 9 ...尾页 总数:(此表所有数据总和),共(被分成多少页))
解决方案 »
- 求Padding Oracle Attack实战教程
- Ext.Ajax.request 网站无法接收到参数
- 问www.bitauto.com网站的一些功能如何实现?
- 利用反射减少if等重复代码,听听大家的意见
- 怎样在html中实现从一个页面跳转到另外一个页面?谢谢!我要语句!
- 请问一下高手,我做的ASP.NET程序一传到网上就不能显示
- Web service去调用外部的数据的问题
- 在关闭连接池时connection.close是不是足够,还需要connection.dospose或其他的
- 按钮为什么不变色?
- session初始化的问题
- 在浏览器中可以居中显示,为什么在vs2010的视图里只能显示一半??!!!
- .net日期格式转换报错
<table width="100%" border="0" cellpadding="0" cellspacing="1" class="TableAll">
<tr align="center" class="TrBody">
<td width="9%">序号</td>
<td width="14%" height="25">用户</td>
<td width="25%">操作内容</td>
<td width="21%">操作时间</td>
<td width="16%">IP</td>
<td width="15%">电脑系统</td>
</tr>
<% Str="Select * From XcOprLog Order By ID Desc"
Set Rs=Conn.execute(Str)
I=1
Do while Not Rs.eof
%>
<tr align="center" class="TrBody">
<td><%=I%></td>
<td height="25"><%=Rs("OprUser")%></td>
<td><%=Rs("OprInfo")%></td>
<td><%=Rs("OprTime")%></td>
<td><%=Rs("OprIP")%></td>
<td><%=Rs("OprSys")%></td>
</tr>
<%
I=I+1
Rs.MoveNext
Loop
%>
</table>
http://www.webdiyer.com/aspnetpager/demos/pagedrepeater.aspx
通过这几天百度,看各种实例,然后自己慢慢写出来的!
分析了很久,也用过很多方法,比如用俩个不同的表,或者加个DIV,都实现不了!
数据库程序员 写后端ASHX一般处理程序,并预留3个参数(SQL语句,当前页数,每页数目),按照静态界面去拼接HTML语句。
JS程序员通过AJAX接收,AJAX 调用分页函数。
我没学过ASP.NET各种服务器控件,一开始就遵循SP1234大神的建议,使用ashx+ajax+html,下面贴出我自己手工写的分页。
你要的答案,回归网页本源,都在里面。
public string getData(string str,int size, int page)
{
StringBuilder strB = new StringBuilder();
DataTable dt1 = GetData(str);
int count = dt1.Rows.Count;
if(count >0)
{
int page_count = count / size + 1; //总页数
IList<page_class> Ilist = JSONhelper.ModelConvertHelper<page_class>.ConvertToModel(dt1);
List<page_class> list_table = Ilist.ToList<page_class>(); List<page_class> return_list = new List<page_class>(); if (count <= size) //如果 查询表行数 小于等于 页面数
{
return_list = list_table.GetRange(0, count);
}
else //如果 查询表行数 大于 页面数
{
if (count % size == 0) // 查询行数 取模 等于0,余数为0,则都分配完
{
return_list = list_table.GetRange((page - 1) * size, size);
}
else
{
if (page != (count / size + 1)) //查询行数 取整,当前页不等于最后1页
{
return_list = list_table.GetRange((page - 1) * size, size);
}
else //查询行数取整,最后一页
{
return_list = list_table.GetRange((page - 1) * size, count % size);
} }
}
for (int i = 0; i < return_list.Count; i++ )
{
strB.Append(@"<div class='col-md-12'>
<div class='col-md-4'>
<div class='thumbnail'>");
strB.Append("<img src='UploadFile/Content/" + return_list[i].img1 + "' alt='img'>"); //缩略图
strB.Append("<div class='caption'>");
strB.Append("<button class='btn btn-default btn-xs' value='" + return_list[i].img2 + "' >");
strB.Append("<span class='glyphicon glyphicon-search'></span>"); //缩略图的 产品按钮
strB.Append("</button>");
strB.Append(@"</div>
</div>
</div>");
strB.Append(@"<div class='col-md-8'>
<div>
<h5>");
strB.Append("<div style='font-size:18px;font-weight: bold;'>" + return_list[i].name + "</div><br/>" + return_list[i].c5); //主标题
strB.Append("</h5>");
strB.Append(return_list[i].contentEn);//简单介绍
strB.Append("</div>");
strB.Append("<button type='button' class='btn btn-default btn-xs' data-toggle='collapse' data-target='#page_btn_info" + i + "1' > Specification</button>"); //3个折叠按钮
strB.Append("<button type='button' class='btn btn-default btn-xs' data-toggle='collapse' data-target='#page_btn_info" + i + "2' > Drawing</button>");
strB.Append("<button type='button' class='btn btn-default btn-xs' data-toggle='collapse' data-target='#page_btn_info" + i + "3' > Download</button>");
strB.Append("<div id='page_btn_info" + i + "1' class='collapse'>");//要更改ID名
strB.Append(return_list[i].e1); //按钮1折叠内容
strB.Append("</div><div id='page_btn_info" + i + "2' class='collapse'><br />");
strB.Append(return_list[i].e2); //按钮2折叠内容
strB.Append("</div> <div id='page_btn_info" + i + "3' class='collapse'>");//按钮3折叠内容
strB.Append(return_list[i].e3); //按钮3折叠内容
strB.Append(@"</div>
</div>
</div>");
if (i != return_list.Count-1)
{
strB.Append("<div class='col-md-12'><div class='row' style='background-color:rgb(204,204,204); margin:10px; height:1px;'></div></div>");
}
} //增加页数导航按钮
int p = page==1?1:page-1;
int n = page < page_count ? page + 1 : page_count;
strB.Append("<div class='text-right'>");
strB.Append("<div class='btn-group' id='nav_page_index'>");
strB.Append("<button type='button' class='btn btn-default btn-xs disabled'>Rows:" + count + " Page:" + page + " / " + page_count + "</button>");
strB.Append("<button type='button' class='btn btn-default btn-xs' value='1'>First</button>");
strB.Append("<button type='button' class='btn btn-default btn-xs' value='" + p + "'>Prev</button>");
strB.Append("<button type='button' class='btn btn-default btn-xs' value='" + n + "'>Next</button>");
strB.Append("<button type='button' class='btn btn-default btn-xs' value='" + page_count + "'>Last</button>");
strB.Append("</div></div>"); return strB.ToString();
}
else
{
return "<div>rows:0</div>"; }
}
function page_change(str, page) {
var set_json = '{ \"sql\": \"' + str + '", \"page\": ' + page + ' }';
$.ajax({
type: "POST",
url: "ashx/prohandler.ashx",
data: set_json,
success: function (message) {
$("#page_content").html("");
$("#page_content").append(message); },
error: function (message) {
alert(message);
}
});
}有人说,为什么不去用服务器控件或者第三方分页控件,我回答,因为强调个性。网页是彰显个性的地方。