ASP.NET C# 后台输出的带页码的分页函数(不用控件)

来源:互联网 发布:21天学会javascript 编辑:程序博客网 时间:2024/06/06 10:01

分页,如果用JS在前台分页,我觉得对SEO不利(js这东西确实是个好东西,但有时候,得考滤SEO),所以写了个ASP.NET 不用控件进行分页,直接从后台输出的,带页码的分页函数,如果您有用,可以参考


进入页面时接收参数:

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}


	
				
		
原创粉丝点击