知识大全 一个ASP.Net的DataGrid分页控件
Posted 知
篇首语:炒沙作縻终不饱,缕冰文章费工巧。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 一个ASP.Net的DataGrid分页控件相关的知识,希望对你有一定的参考价值。
一个ASP.Net的DataGrid分页控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
写的不算好 仅供参考 GridPager ascx: <%@ Control Language= c# AutoEventWireup= false Codebehind= GridPager ascx cs Inherits= Test BaseClass GridPager TargetSchema= %><?xml:namespace prefix = asp /><asp:linkbutton id=lbtnPre runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False Enabled= False Font Size= Small > </asp:linkbutton> <asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnPage runat= server Text= Visible= False ></asp:linkbutton><asp:linkbutton id=lbtnNext runat= server Text= Visible= False ></asp:linkbutton> /////////////////////////////////////////////////////////////////////////////////////// GridPager ascx cs: using System; using System Data; using System Drawing; using System Web; using System Web UI WebControls; namespace Test BaseClass public class GridPager : System Web UI UserControl #region 类变量 protected System Web UI WebControls LinkButton lbtnNext; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPage ; protected System Web UI WebControls LinkButton lbtnPre; #endregion #region /// <summary> /// 编号 /// 内容摘要 翻页的对象 DataGrid控件 /// </summary> public DataGrid TheGrid; /// <summary> /// 编号 /// 内容摘要 显示查询结果记录数的标签 可以不设置 表示无需显示 /// </summary> public Label LabelRowsCount; /// <summary> /// 编号 /// 内容摘要 显示查询结果总页数的标签 可以不设置 表示无需显示 /// </summary> public Label LabelPageCount; /// <summary> /// 编号 /// 内容摘要 显示当前页码的标签 可以不设置 表示无需显示 /// </summary> public Label LabelPageIndex; /// <summary> /// 编号 /// 内容摘要 查询数据的SQL语句 /// </summary> private string SelectSQL get if(ViewState[this ClientID+ _SelectSQL ] != null) return ViewState[this ClientID+ _SelectSQL ] ToString(); else return string Empty; set ViewState[this ClientID+ _SelectSQL ] = value; //SelectSQL结束 /// <summary> /// 编号 /// 内容摘要 每页显示的行数 /// </summary> public int PageSizes get if(ViewState[this ClientID+ _PageSizes ] != null) return (int)ViewState[this ClientID+ _PageSizes ]; else return ; set ViewState[this ClientID+ _PageSizes ] = value; //PageSizes结束 /// <summary> /// 编号 /// 内容摘要 总页数 /// </summary> private int PageCount get if(ViewState[this ClientID+ _PageCount ] != null) return (int)ViewState[this ClientID+ _PageCount ]; else return ; set ViewState[this ClientID+ _PageCount ] = value; //PageCount结束 /// <summary> /// 编号 /// 内容摘要 当前页码 /// </summary> private int CurrentPageIndex get if(ViewState[this ClientID+ _CurrentPageIndex ] != null) return (int)ViewState[this ClientID+ _CurrentPageIndex ]; else return ; set ViewState[this ClientID+ _CurrentPageIndex ] = value; if(this LabelPageIndex!= null) this LabelPageIndex Text = (value+ ) ToString(); //CurrentPageIndex结束 private LinkButton[] PageButtons get return new LinkButton[]lbtnPage lbtnPage lbtnPage lbtnPage lbtnPage lbtnPage lbtnPage lbtnPage lbtnPage lbtnPage ; #endregion #region 方法区开始 /// <summary> /// 方法编号 /// 内容摘要 初始化页面 /// </summary> private void Page_Load(object sender System EventArgs e) /// <summary> /// 方法编号 /// 内容摘要 设置与本控件关联的控件 /// </summary> /// <param name= mDataGrid >DataGrid控件 必须提供</param> /// <param name= lblRowsCount >显示查询结果记录数的标签 可以输入null 表示无需显示</param> /// <param name= lblPageCount >显示查询结果总页数的标签 可以输入null 表示无需显示</param> /// <param name= lblPageIndex >显示当前页码的标签 可以输入null 表示无需显示</param> public void InitPagerControls(DataGrid mDataGrid Label lblRowsCount Label lblPageCount Label lblPageIndex) mDataGrid AllowPaging = false; this TheGrid = mDataGrid; this LabelRowsCount = lblRowsCount; this LabelPageCount = lblPageCount; this LabelPageIndex = lblPageIndex; /// <summary> /// 方法编号 /// 内容摘要 改变查询条件重新查询数据 /// </summary> /// <param name= selectSQL >查询的SQL语句 翻页的时候始终使用该语句获得数据集 直到下一次调用本方法</param> public void LoadData(string selectSQL) //保存新的SQL语句 this SelectSQL = selectSQL; //统计符合条件的数据的条数 int mRowCount = ; string tmpSQL = SELECT COUNT(*) FROM ( + selectSQL + ) t ; Database db = new Database(); System Data OleDb OleDbDataReader tmpDr = db GetDataReaderFromSQL(tmpSQL); if(tmpDr Read()) mRowCount = Convert ToInt (tmpDr[ ]); //释放数据连接 tmpDr Close(); db Dispose(); //如果需要则显示数据总行数 if(this LabelRowsCount!=null) this LabelRowsCount Text = mRowCount ToString(); //统计总页数 如果需要则显示总页数 this PageCount = (int)Math Ceiling(((double)mRowCount)/((double)PageSizes)); if(this LabelPageCount != null) this LabelPageCount Text = this PageCount ToString(); //DataGrid的当前页回到第一页 按钮也返回第一页的状态 this CurrentPageIndex = ; this ChangePageButtons( ); //查询第一页数据 this lbtnPages_Click(this PageButtons[ ] null); /// <summary> /// 方法编号 /// 内容摘要 查询符合条件的数据并绑定DataGrid显示 /// </summary> private void BindData() string selectSQL = this SelectSQL; if(selectSQL != string Empty) Database db = new Database();//这是我自己的一个数据操作类 int rowStart = (CurrentPageIndex * PageSizes) + ;//当前页的起始序号 int rowEnd = (CurrentPageIndex+ ) * PageSizes;//当前页的结束序号 string querySQL = SELECT * FROM (SELECT t * rownum sn FROM ( + selectSQL + ) t ) t + WHERE t sn BEEEN +rowStart ToString()+ AND + rowEnd ToString(); //查询数据库读取符合条件的数据 DataTable tb = db GetDataTableFromSQL(querySQL); //绑定DataGrid显示 TheGrid DataSource = tb; TheGrid DataBind(); db Dispose(); /// <summary> /// 方法编号 /// 内容摘要 改变翻页按钮的状态 如显示 的页码 /// </summary> private void ChangePageButtons(int mIndex) int tmpRem = ; int tmpDiv = Math DivRem(this PageCount out tmpRem); if(tmpRem == ) tmpRem= ; //所有按钮恢复默认的状态 for(int i = ;i< ;i++) int pageNum = mIndex* + i + ; this PageButtons[i] Text = pageNum ToString(); this PageButtons[i] Visible = true; this PageButtons[i] Enabled = true; this PageButtons[i] Font Size = System Web UI WebControls FontUnit XSmall; //end of for(int i = ;i< ;i++) this lbtnPre Visible = true; this lbtnNext Visible = true; //如果目前是 ~ 页 那么不显示 前面的 if(mIndex == ) lbtnPre Visible = false; //如果目前是最后的一页 则不显示后面的 并且保证显示的翻页按钮不超过最大页数 if(mIndex == tmpDiv) lbtnNext Visible = false; for(int i = ;i>tmpRem ;i=i ) this PageButtons[i] Visible = false; /// <summary> /// 方法编号 /// 内容摘要 显示前十个页码 /// </summary> private void lbtnPre_Click(object sender System EventArgs e) this ChangePageButtons((int)Math Floor(Math Max(this CurrentPageIndex )/ )); this lbtnPages_Click(this PageButtons[ ] null); /// <summary> /// 方法编号 /// 内容摘要 显示后十个页码 /// </summary> private void lbtnNext_Click(object sender System EventArgs e) this ChangePageButtons((int)Math Floor(Math Max(this CurrentPageIndex + )/ )); this lbtnPages_Click(this PageButtons[ ] null); /// <summary> /// 方法编号 /// 内容摘要 查询绑定新的一页 /// </summary> private void lbtnPages_Click(object sender System EventArgs e) LinkButton tmpLBtn = sender as LinkButton; int pageIndex = Convert ToInt (tmpLBtn Text Trim()) ; this CurrentPageIndex = pageIndex; foreach(LinkButton mLBtn in this PageButtons) mLBtn Enabled = true; mLBtn Font Size = System Web UI WebControls FontUnit XSmall; tmpLBtn Enabled = false; tmpLBtn Font Size = System Web UI WebControls FontUnit Small; this BindData(); #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) // // CODEGEN: 该调用是 ASP NET Web 窗体设计器所必需的 // InitializeComponent(); base OnInit(e); /// <summary> /// 设计器支持所需的方法 不要使用代码编辑器 /// 修改此方法的内容 /// </summary> private void InitializeComponent() this lbtnPre Click += new System EventHandler(this lbtnPre_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnPage Click += new System EventHandler(this lbtnPages_Click); this lbtnNext Click += new System EventHandler(this lbtnNext_Click); this Load += new System EventHandler(this Page_Load); #endregion #endregion cha138/Article/program/Oracle/201311/17308相关参考
知识大全 ASP.NET中自定义DataGrid分页设置的实现
ASP.NET中自定义DataGrid分页设置的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Asp.NET自定义DataGrid控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一&nb
ASP.NET中DataGrid控件应用技巧简述 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 asp.net中显示DataGrid控件列序号的几种方法
asp.net中显示DataGrid控件列序号的几种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
Asp.Net可定制分页用户控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 介绍借助AspN
ASP.NETMVC分页控件的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 需求及模拟代码
可能大家有用得着的地方发出来一起研究下代码如下 Pagercs 服务器控件源代码 usingSystem; usingSystemWeb; 
ASP.NET中的DataGrid的属性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
ASP.NET中为DataGrid添加合计字段 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 论
ASP.NET中实现DataGrid数据排序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Vi