原理: 封装了数据分页方法,提供2个参数:(每页显示多少条,页索引),然后字符串绘制数据显示,,,就不知道性能如何。。。 前台代码: <body οnlοad="JumpPage(5,1)" style="font-size:12px;" mce_style="font-size:12px;"> <form id="form1" runat="server"> <mce:script type="text/javascript" defer="defer"><!-- // //window.setInterval(display,10000); // AjaxPro.onLoading = function(b) { // var loading = document.getElementById("loadinfo"); // loading.style.visibility = b ? "visible" : "hidden"; // } function JumpPage(pageSize,pageindex)//分页处理方法 参数:每页显示多少条,页索引 { $("#alist").html(Web.Manager.Test.GetString(parseInt(pageSize), parseInt(pageindex)).value); } // --></mce:script> <div id="alist"> </div> <div> 每页显示:<select id="Select1" οnchange="JumpPage(this.value,1)" > <option value="5" selected="selected">5条</option> <option value="10">10条</option> <option value="20">20条</option> <option value="50">50条</option> <option value="100">100条</option> </select></div> <div id="loadinfo" style="visibility: hidden;" mce_style="visibility: hidden;"> 正在加载中.....</div> <div> <input type="button" οnclick="JumpPage(1)" value="测试ajaxpro" /></div> </form> </body> </html> 后台代码: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.Data; using Dal; using Model; namespace Web.Manager { public partial class Test : System.Web.UI.Page { Big_DepDAL bdd = new Big_DepDAL(); protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(typeof(Web.Manager.Test)); } protected DataTable GetList(int size, int pageindex ) { return bdd.Pager("B_id", "desc", "",size,pageindex); } /// <summary> /// 分页显示数据 /// </summary> /// <param name="size">每页显示多少条 js默认显示</param> /// <param name="pageindex">显示第几页 从第一页开始</param> /// <returns></returns> [AjaxPro.AjaxMethod] public string GetString(int size, int pageindex) { string selectvalue="document.getElementById('Select1').value"; StringBuilder text = new StringBuilder(); text.Append("<table border='0' cellpadding='0' cellspacing='0' width='380px'>"); text.Append("<tr align='center'>"); text.Append("<td style='width:80px'>编号</td>"); text.Append("<td style='width:300px'>名称</td>"); text.Append("</tr>"); DataTable dt = GetList(size, pageindex); for (int i = 0; i < dt.Rows.Count; i++) { text.Append("<tr align='center'>"); text.Append("<td style='width:80px'>" + dt.Rows[i]["B_id"].ToString() + "</td>"); text.Append("<td style='width:300px'>" + dt.Rows[i]["Bd_name"].ToString() + "</td>"); text.Append("</tr>"); } text.Append("</table>"); int count=bdd.count(""); int pageCount = (int)(Math.Ceiling(count / (double)size));//获得总页数 text.Append("<div align='center'>当前页:" + pageindex + "/" + pageCount + " 共"+count+"页"); if (pageindex > 1) //当前页不是第一页就显示上一页和首页 { text.Append("<a href="javascript:JumpPage(" mce_href="javascript:JumpPage("" + selectvalue + ",1)>首页</a><a href="javascript:JumpPage(" mce_href="javascript:JumpPage("" + selectvalue + "," + (pageindex - 1) + ")>上一页</a>"); } if (pageindex < pageCount) //当前页小于总页就显示下一页和尾页 { text.Append("<a href="javascript:JumpPage(" mce_href="javascript:JumpPage("" + selectvalue + "," + (pageindex + 1) + ")>下一页</a><a href="javascript:JumpPage(" mce_href="javascript:JumpPage("" + selectvalue + "," + (pageCount) + ")>尾页</a></div>"); } return text.ToString(); } } } 封装的Page方法: /// <summary>分页查询大部门 /// /// </summary> /// <param name="ordbyName">排序字段</param> /// <param name="ordbytype">排序类型(asc或者desc)</param> /// <param name="cond">分页条件(不用加where)---空查询所有</param> /// <param name="pagesize">每页显示多少条</param> /// <param name="pageindex">第几页(1,2,3,4)</param> /// <returns></returns> public DataTable Pager(string ordbyName, string ordbytype, string cond, int pagesize, int pageindex) { try { if (!string.IsNullOrEmpty(cond)) //条件查询 { return sqlhelper.Pager("Big_Dep", "B_id,Bd_name", ordbyName, ordbytype, cond, pagesize, pageindex); } else //全部查询 { return sqlhelper.Pager("Big_Dep", "B_id,Bd_name", ordbyName, ordbytype, "", pagesize, pageindex); } } catch (Exception) { return null; } } /// <summary>分页,参数(表名,字段名,排序字段名,排序方式:asc或者desc,条件,不用加where,页大小,页索引) /// </summary> /// <param name="tblName">表名</param> /// <param name="fldName">字段名</param> /// <param name="OrderfldName">排序字段名</param> /// <param name="OrderType">排序方式:asc或者desc</param> /// <param name="strWhere">条件,不用加where</param> /// <param name="PageSize">页大小</param> /// <param name="PageIndex">页索引</param> /// <returns></returns> public DataTable Pager(string tblName, string fldName, string OrderfldName, string OrderType, string strWhere, int PageSize, int PageIndex) { DataTable dt = new DataTable(); string strSQL = ""; // 主语句 string strTmp = ""; // 临时变量 string strOrder = ""; // 排序类型 if (OrderType == "desc") { // 降序 strTmp = "<(select min"; strOrder = " order by " + OrderfldName + " desc"; } else { // 升序 strTmp = ">(select max"; strOrder = " order by " + OrderfldName + " asc"; } #region 第一页 if (PageIndex == 1) { strTmp = string.IsNullOrEmpty(strWhere) ? "" : " where " + strWhere; strSQL = "select top " + PageSize + " " + fldName + " from " + tblName + strTmp + " " + strOrder; dt = ExecuteQuery(strSQL); return dt; } #endregion #region 不是第一页 if (string.IsNullOrEmpty(strWhere)) { // 条件为空 strSQL = string.Format("select top {0} {1} from {2} where {3}{4}({5}) from (select top {6} {7} from {8} {9}) as tblTmp) {10}", PageSize, fldName, tblName, OrderfldName, strTmp, OrderfldName, (PageIndex - 1) * PageSize, OrderfldName, tblName, strOrder, strOrder); dt = ExecuteQuery(strSQL); } else { // 条件不为空 strSQL = string.Format("select top {0} {1} from {2} where {3}{4}({5}) from (select top {6} {7} from {8} where {9} {10}) as tblTmp) and {11} {12}", PageSize, fldName, tblName, OrderfldName, strTmp, OrderfldName, (PageIndex - 1) * PageSize, OrderfldName, tblName, strWhere, strOrder, strWhere, strOrder); dt = ExecuteQuery(strSQL); } #endregion CloseCon(); return dt; }