知识大全 一个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控件

Asp.NET自定义DataGrid控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一&nb

知识大全 ASP.NET中DataGrid控件应用技巧简述

ASP.NET中DataGrid控件应用技巧简述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 asp.net中显示DataGrid控件列序号的几种方法

asp.net中显示DataGrid控件列序号的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 Asp.Net 可定制分页用户控件

Asp.Net可定制分页用户控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍借助AspN

知识大全 ASP.NET MVC分页控件的实现

ASP.NETMVC分页控件的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  需求及模拟代码

知识大全 自定义分页控件源码asp.net(c#)

  可能大家有用得着的地方发出来一起研究下代码如下  Pagercs 服务器控件源代码  usingSystem;   usingSystemWeb; 

知识大全 ASP.NET中的DataGrid的属性

ASP.NET中的DataGrid的属性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET中为DataGrid添加合计字段

ASP.NET中为DataGrid添加合计字段  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  论

知识大全 ASP.NET中实现DataGrid数据排序

ASP.NET中实现DataGrid数据排序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Vi