asp.net 源码保存 用程序分页 源码: 复制代码 代码如下: namespace Alex { public class PageTools { /// /// 表名称 /// private string tableName; public string TableName { get { return tableName; } set { tableName = value; } } /// /// 返回的列名 /// private string returnColumns; public string ReturnColumns { get { return returnColumns; } set { returnColumns = value; } } /// /// 条件 /// private string where; public string Where { get { return where; } set { where = value; } } /// /// 排序列 /// private string orderColumnName; public string OrderColumnName { get { return orderColumnName; } set { orderColumnName = value; } } /// /// 排序,true为降序 /// private Boolean orderDesc; public Boolean OrderDesc { get { return orderDesc; } set { orderDesc = value; } } /// /// 主键 /// private string keyColumnName; public string KeyColumnName { get { return keyColumnName; } set { keyColumnName = value; } } /// /// 页面大小 /// private Int32 pageSize; public Int32 PageSize { get { return pageSize; } set { pageSize = value; } } /// /// 第几页 /// private Int32 pageIndex; public Int32 PageIndex { get { return pageIndex; } set { pageIndex = value; } } /// /// SQL参数 /// private SqlParameter[] whereParams; public SqlParameter[] WhereParams { get { return whereParams; } set { whereParams = value; } } /// /// /// 条件 /// 排序列 /// 排序,true为降序 /// 主键 /// 页面大小 /// 第几页 /// SQL参数 public PageTools(string tableName, string returnColumns, string where, string orderColumnName, Boolean orderDesc, string keyColumnName, Int32 pageSize, Int32 pageIndex, params SqlParameter[] whereParams) { this.TableName = tableName; this.ReturnColumns = returnColumns; this.Where = where; this.OrderColumnName = orderColumnName; this.OrderDesc = orderDesc; this.KeyColumnName = keyColumnName; this.PageSize = pageSize; this.PageIndex = pageIndex; this.WhereParams = WhereParams; } public PageTools() { } public DataTable RetrievePagerData() { if (pageIndex == 1) { return RetrieveTopData(); } else { string sql = string.Format("select top {0} {1} from {2} where {3} and {6} not in ( select top {7} {6} from {2} where {3} order by {4} {5} ) order by {4} {5}", pageSize, returnColumns, tableName, where, orderColumnName, orderDesc == true ? "desc" : string.Empty, keyColumnName, pageSize * (pageIndex - 1)); return DbHelperSQL.Query(sql, CheckNull(whereParams)).Tables[0]; } } /// /// 获取数据的条数 /// /// /// /// /// public Int32 RetrieveDataCount() { string sql = string.Format("select count(*) from {0} where {1}" , tableName, where); Int32 result = (Int32)DbHelperSQL.GetSingle(sql, CheckNull(whereParams)); return result; } /// /// 获取第一页 /// /// /// /// /// /// /// /// /// public DataTable RetrieveTopData() { string sql = string.Format("select top {0} {1} from {2} where {3} order by {4} {5}", pageSize, returnColumns, tableName, where, orderColumnName, orderDesc == true ? "desc" : string.Empty); return DbHelperSQL.Query(sql, whereParams).Tables[0]; } /// /// 移除空参数 /// /// /// private SqlParameter[] CheckNull(SqlParameter[] paras) { if (paras == null) { return null; } List list = new List(); foreach (SqlParameter para in paras) { if (para != null) list.Add(para); } return list.ToArray(); } } } 页面后台: 复制代码 代码如下: public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { recordCount = page.RetrieveDataCount(); totalPages = (int)(Math.Ceiling((double)recordCount / (double)page.PageSize)); if (!IsPostBack) { BindData(); } } Alex.PageTools page = new Alex.PageTools("Test", "*", "1=1", "USER_Account", false, "USER_Account", 10, 1, null); int recordCount; public int totalPages; private void BindData() { int pageIndex = SmartGridView1.PageIndex; if(totalPages>0) { if(pageIndex>totalPages-1) { pageIndex=totalPages-1; } } else { pageIndex=0; } SmartGridView1.PageIndex=pageIndex; page.PageIndex=pageIndex+1; SmartGridView1.DataSource = page.RetrievePagerData(); SmartGridView1.DataBind(); if (this.SmartGridView1.PageIndex == 0) { this.btnFirst.Enabled = false; this.btnPrev.Enabled = false; if (totalPages == 1) { this.btnLast.Enabled = false; this.btnNext.Enabled = false; } } else if (this.SmartGridView1.PageIndex == totalPages - 1) { this.btnLast.Enabled = false; this.btnNext.Enabled = false; } this.lblpagesum.Text = totalPages.ToString(); this.lblpage.Text = (pageIndex + 1).ToString(); this.lblrowscount.Text = recordCount.ToString(); } public void NavigateToPage(object sender, CommandEventArgs e) { btnFirst.Enabled = true; btnPrev.Enabled = true; btnNext.Enabled = true; btnLast.Enabled = true; string pageinfo = e.CommandArgument.ToString(); switch (pageinfo) { case "Prev": if (this.SmartGridView1.PageIndex > 0) { this.SmartGridView1.PageIndex -= 1; } break; case "Next": if (this.SmartGridView1.PageIndex < (totalPages - 1)) { this.SmartGridView1.PageIndex += 1; } break; case "First": this.SmartGridView1.PageIndex = 0; break; case "Last": this.SmartGridView1.PageIndex = totalPages - 1; break; } if (this.SmartGridView1.PageIndex == 0) { btnFirst.Enabled = false; btnPrev.Enabled = false; if (totalPages == 1) { btnLast.Enabled = false; btnNext.Enabled = false; } } else if (this.SmartGridView1.PageIndex == totalPages - 1) { btnLast.Enabled = false; btnNext.Enabled = false; } BindData(); } protected void gobtnClick(object sender, EventArgs e) { int goPageIndex = Convert.ToInt32(this.goCount.Text.Trim()); if (goPageIndex > 0) { if (goPageIndex >= totalPages) { this.SmartGridView1.PageIndex = totalPages - 1; } else { this.SmartGridView1.PageIndex = goPageIndex - 1; } } else if(goPageIndex <=0) { this.SmartGridView1.PageIndex = 0; } if (this.SmartGridView1.PageIndex == 0) { btnFirst.Enabled = false; btnPrev.Enabled = false; btnLast.Enabled = true; btnNext.Enabled = true; if (totalPages == 1) { btnLast.Enabled = false; btnNext.Enabled = false; } } else if (this.SmartGridView1.PageIndex == totalPages - 1) { btnLast.Enabled = false; btnNext.Enabled = false; btnFirst.Enabled = true; btnPrev.Enabled = true; } else { btnLast.Enabled = true; btnFirst.Enabled = true; btnNext.Enabled = true; btnPrev.Enabled = true; } BindData(); } 页面前台: 代码 复制代码 代码如下: <%@ Page Language="C#" Theme="msn_blue" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register Assembly="SmartGridView" Namespace="BOSSWWebUI.SmartGridView" TagPrefix="uc1" %>
○ 页次:/ ,共: [首 页][上一页][下一页][尾 页]