ASP.NET C# 后台输出的带页码的分页函数(不用控件)
2013-11-14 11:50
357 查看
分页,如果用JS在前台分页,我觉得对SEO不利(js这东西确实是个好东西,但有时候,得考滤SEO),所以写了个ASP.NET 不用控件进行分页,直接从后台输出的,带页码的分页函数,如果您有用,可以参考
进入页面时接收参数:
分页时用到的字段,写在pageload上面
方法 :
进入页面时接收参数:
if (Request["page"] != null) { if (!int.TryParse(Request["page"].ToString(), out pageindex)) { Response.End(); return; } }
分页时用到的字段,写在pageload上面
//分页用到的字段 protected int pageindex = 1; protected int pagesize = 1; protected int startIndex = 1; protected int endIndex = 0; protected int preIndex = 0; protected int nextIndex = 0;
方法 :
protected string FenYe(int pageindex, int pagesize) { StringBuilder sbFenye = new StringBuilder(); decimal rc = 0; DataSet ds = GetData.XXXX;//这里是从后台获取的DataSet列表 if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { rc = decimal.Parse(ds.Tables[0].Rows[0][0].ToString()); int totalpage = Convert.ToInt32(Math.Ceiling(rc / pagesize).ToString()); nextIndex = pageindex + 1; preIndex = pageindex - 1; string nextStr = ""; string preStr = ""; if (nextIndex > totalpage) { nextStr = ""; } else { nextStr = "<a href=\"default.aspx?page=" + nextIndex + "\"> 下一页 </a>"; } if (pageindex == 1) { preStr = ""; } else { preStr = "<a href=\"default.aspx?page=" + preIndex + "\"> 上一页 </a>"; } sbFenye.Append("<div class=\"scott\">"); sbFenye.Append("总记录:"+ rc +" 总页数:"+totalpage+" "); if (pageindex != 1) { sbFenye.Append("<a href=\"default.aspx?page=1\">首页</a>"); } sbFenye.Append(preStr); int Step = 5; int LeftNum = 0; int RightNum = 0; if ((pageindex - Step) < 1) { LeftNum = 1; } else { LeftNum = pageindex - Step; } if ( (pageindex + Step) > totalpage) { RightNum = totalpage; } else { RightNum = pageindex + Step; } for (int i = LeftNum; i <= RightNum; i++) { if (i==pageindex) { sbFenye.Append("<span class=\"current\">" + i.ToString() + "</span>"); } else { sbFenye.Append("<a href=\"default.aspx?page=" + i + "\">" +i.ToString() + "</a>"); } } sbFenye.Append(nextStr); if (pageindex != totalpage) { sbFenye.Append("<a href=\"default.aspx?page=" + totalpage + "\">尾页</a>"); } sbFenye.Append("</div>"); } return sbFenye.ToString(); }
前台输出
<%=FenYe(pageindex,pagesize)%> 前台列表: <%= PageList(pageindex,pagesize) %> PageList为后台.cs里写的读取列表的方法 标签:ASP.NET C# 后台输出的带页码的分页函数 前台CSS样式: DIV.scott { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; MARGIN: 3px; PADDING-TOP: 3px; TEXT-ALIGN: center } DIV.scott A { BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ddd 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ddd 1px solid; COLOR: #88af3f; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #ddd 1px solid; TEXT-DECORATION: none } DIV.scott A:hover { BORDER-RIGHT: #85bd1e 1px solid; BORDER-TOP: #85bd1e 1px solid; BORDER-LEFT: #85bd1e 1px solid; COLOR: #638425; BORDER-BOTTOM: #85bd1e 1px solid; BACKGROUND-COLOR: #f1ffd6 } DIV.scott A:active { BORDER-RIGHT: #85bd1e 1px solid; BORDER-TOP: #85bd1e 1px solid; BORDER-LEFT: #85bd1e 1px solid; COLOR: #638425; BORDER-BOTTOM: #85bd1e 1px solid; BACKGROUND-COLOR: #f1ffd6 } DIV.scott SPAN.current { BORDER-RIGHT: #b2e05d 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #b2e05d 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; BORDER-LEFT: #b2e05d 1px solid; COLOR: #fff; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #b2e05d 1px solid; BACKGROUND-COLOR: #b2e05d } DIV.scott SPAN.disabled { BORDER-RIGHT: #f3f3f3 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #f3f3f3 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: #f3f3f3 1px solid; COLOR: #ccc; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #f3f3f3 1px solid }
相关文章推荐
- asp.net中用JavaScript调用后台C#函数
- C# ASP.NET AspNetPager对DataList控件分页
- javascript与cs代码互相调用 asp.net中前台javascript与后台C#交互 这里主要包括了javascipt与后台CS代码四种方法互调(其中包括函数与变量的访问)
- 在ASP.Net With C# 中使用 DataGrid 控件分页展示数据
- asp.net C#将文档或控件dataGrid输出为Excel文档下载
- asp.net中前台JavaScript库调用后台C#变量和有参函数方法
- C# Asp.Net分页控件1.2
- vs2003 asp.net中直接输出wml,并利用C#做动态页面的控制,不使用微软的移动控件
- c#与asp.net页面前台语后台的函数以及变量互调
- asp.net 不用控件 循环输出数据库数据的方法
- c# asp.net 自己写的分页 没有使用控件原始分页
- asp.net下Repeater使用 AspNetPager分页控件 不用存储过程 完美实现
- asp.net分页控件(c#)
- asp.net 不用控件 循环输出数据库数据的方法
- Asp.Net不用控件分页
- asp.net C#如何上传指定路径的图片,不用FileUpload控件[转]
- ASP.NET(C#)中将TextBox控件的Readonly属性设置为True时后台直接取值取不到的解决方案
- asp.net自制分页页码条控件
- ASP.NET(C#)——关于后台变量和前台控件
- C#分页代码,或许这个代码比Asp.Net分页和AspNetPager控件更好用