ASP.NET C# 後臺輸出的帶頁碼的分頁函數(不用控件)

分頁,如果用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
}






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章