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

Posted

篇首语:一年好景君须记,最是橙黄橘绿时。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 自定义分页控件源码asp.net(c#)相关的知识,希望对你有一定的参考价值。

  可能大家有用得着的地方 发出来一起研究下 代码如下

  Pager cs  服务器控件源代码

  using System;    using System Web;    using System Web UI;    using System Web UI WebControls;    using System ComponentModel;

  namespace C_Pager         public class Pager : Control INamingContainer           [Description( 操作员选择不同页时产生的页更新事件 通过此事件处理把旧页面显示信息更新到选择页对应的数据信息 )]      public event EventHandler PageChanged;

  private int rectotal = ;      private int pagesize = ;      private int curpage  = ;      private int lang  = ;      private int pagetotal = ;

  private string firstpagetext = <FONT face=webdings> </FONT> ;      private string prevpagetext = <FONT face=webdings> </FONT> ;      private string nextpagetext = <FONT face=webdings> </FONT> ;      private string lastpagetext = <FONT face=webdings>:</FONT> ;

  protected virtual void temp_Click(object sender EventArgs e)             if (PageChanged != null)               PageChanged(this e);            

  Pager控件使用帮助及参数说明#region Pager控件使用帮助及参数说明      /**//*       本控件带有三个自定义属性和一个方法 具体如下:       属性:        RecTotal 记录总数 默认值:         PageSize 每页记录数 默认值:         CurPage  当前页  默认值:         Lang  版本语言 默认值: 注: 为中文版 为英文版       方法:        PagerBind 绑定当前自定义控件 如不绑定 该控件则不能显示到页面上       */      #endregion

  控件属性列表#region 控件属性列表

  [Category( 分页控制 ) Description( 数据集所有页记录总数 )]      public int RecTotal             get return rectotal;        set rectotal = value;       

  [Category( 分页控制 ) Description( 每页显示记录数量 )]      public int PageSize             get return pagesize;        set pagesize = value;       

  [Category( 分页控制 ) Description( 当前显示页 )]      public int CurPage             get return curpage;        set curpage = value;       

  [Category( 分页控制 ) Description( 数据集页总数 )]      public int PageTotal             set pagetotal = value;       

  [Category( 分页控制 ) Description( 翻页条显示语言别 0为中文 1为英文 )]      public int Lang             get return lang;         set lang = value;        

  [Category( 分页控制 ) Description( 首页按钮文本 例如可用 第一页 )]      public string FirstPageText  //             get return firstpagetext;         set firstpagetext = value;        

  [Category( 分页控制 ) Description( 前页按钮文本 例如可用 上一页 )]      public string PrevPageText             get return prevpagetext;         set prevpagetext = value;        

  [Category( 分页控制 ) Description( 下页按钮文本 例如可用 下一页 )]      public string NextPageText             get return nextpagetext;         set nextpagetext = value;        

  [Category( 分页控制 ) Description( 尾页按钮文本 例如可用 最后页 )]      public string LastPageText             get return lastpagetext;         set lastpagetext = value;        

  #endregion

  protected override void CreateChildControls()             ViewState[ FirstPageText ]= firstpagetext;       ViewState[ PrevPageText ] = prevpagetext;       ViewState[ NextPageText ] = nextpagetext;       ViewState[ LastPageText ] = lastpagetext;

  Label lbl_PageInfo = new Label();     //        lbl_PageInfo Text = 尚未绑定 ;       Controls Add(lbl_PageInfo);

  LinkButton btn_First = new LinkButton();   //        btn_First Text = ViewState[ FirstPageText ] ToString();       Controls Add(btn_First);       btn_First Visible = false;       btn_First Click += new System EventHandler(btn_First_Click);

  Controls Add(new LiteralControl( ));    //

  LinkButton btn_Pre = new LinkButton();    //        btn_Pre Text = ViewState[ PrevPageText ] ToString();       Controls Add(btn_Pre);       btn_Pre Visible = false;       btn_Pre Click += new System EventHandler(btn_Pre_Click);

  Controls Add(new LiteralControl( ));    //

  LinkButton btn_Next = new LinkButton();    //        btn_Next Text = ViewState[ NextPageText ] ToString();       Controls Add(btn_Next);       btn_Next Visible = false;       btn_Next Click += new System EventHandler(btn_Next_Click);

  Controls Add(new LiteralControl( ));    //

  LinkButton btn_Last = new LinkButton();    //        btn_Last Text = ViewState[ LastPageText ] ToString();       Controls Add(btn_Last);       btn_Last Visible = false;       btn_Last Click += new System EventHandler(btn_Last_Click);

  Controls Add(new LiteralControl( &nbsp;&nbsp; )); //

  Label lbl_ = new Label();       //        lbl_ Text = 转到 ;       lbl_ Visible = false;       Controls Add(lbl_ );

  DropDownList drop_CurPage = new DropDownList();  //        drop_CurPage Items Add( );       Controls Add(drop_CurPage);       drop_CurPage AutoPostBack = true;       drop_CurPage Visible = false;       drop_CurPage SelectedIndexChanged += new System EventHandler(drop_CurPage_SelectedIndexChanged);

  Label lbl_ = new Label();       //        lbl_ Text = 页 ;       lbl_ Visible = false;       Controls Add(lbl_ );     

  protected override void OnPreRender(EventArgs e)             if (!Page IsPostBack)               StartVar();        PagerBind();            

  protected void StartVar() //初始各参数.希望只执行一次             ViewState[ RecTotal ] = rectotal;       ViewState[ PageSize ] = pagesize;       ViewState[ CurPage ] = curpage;       ViewState[ Lang ] = lang ;       ViewState[ PageTotal ] = pagetotal;     

      相关方法及事件#region 相关方法及事件      public void PagerBind()             ViewState[ PageTotal ]=((int)ViewState[ RecTotal ]%(int)ViewState[ PageSize ]> ) ? (int)ViewState[ RecTotal ]/(int)ViewState[ PageSize ]+ : (int)ViewState[ RecTotal ]/(int)ViewState[ PageSize ];        //页总数       if ((int)ViewState[ Lang ]== )               ((Label)Controls[ ]) Text= 共<font color=red> +ViewState[ RecTotal ] ToString()+ </font>条信息 <font color=red> +ViewState[ PageSize ] ToString()+ </font>条/页 当前<font color=red> +((int)ViewState[ CurPage ]+ ) ToString()+ </font>/<font color=red> +ViewState[ PageTotal ] ToString()+ </font>页&nbsp;&nbsp; ;              else               ((Label)Controls[ ]) Text= Total<font color=red> +ViewState[ RecTotal ] ToString()+ </font>Info <font color=red> +ViewState[ PageSize ] ToString()+ </font>/Page Current<font color=red> +((int)ViewState[ CurPage ]+ ) ToString()+ </font>/<font color=red> +ViewState[ PageTotal ] ToString()+ </font>Page&nbsp;&nbsp; ;        ((Label)Controls[ ]) Text = To ;        ((Label)Controls[ ]) Text = Page ;              ((DropDownList)Controls[ ]) Items Clear();

  int i= ;       do               ((DropDownList)Controls[ ]) Items Add(Convert ToString(i+ ));        i++;              while (i<(int)ViewState[ PageTotal ]);

  ((DropDownList)Controls[ ]) SelectedIndex = ((DropDownList)Controls[ ]) Items IndexOf(((DropDownList)Controls[ ]) Items FindByValue(Convert ToString((int)ViewState[ CurPage ]+ )));

  ((LinkButton)Controls[ ]) Visible = true;       ((LinkButton)Controls[ ]) Visible   = true;       ((LinkButton)Controls[ ]) Visible  = true;       ((LinkButton)Controls[ ]) Visible  = true;       ((Label)Controls[ ]) Visible   = true;       ((Label)Controls[ ]) Visible   = true;       ((DropDownList)Controls[ ]) Visible = true;

  ((LinkButton)Controls[ ]) Enabled = true;       ((LinkButton)Controls[ ]) Enabled   = true;       ((LinkButton)Controls[ ]) Enabled  = true;       ((LinkButton)Controls[ ]) Enabled  = true;

  if ((int)ViewState[ CurPage ]== )               ((LinkButton)Controls[ ]) Enabled = false;        ((LinkButton)Controls[ ]) Enabled   = false;        ((LinkButton)Controls[ ]) Enabled  = true;        ((LinkButton)Controls[ ]) Enabled  = true;              if ((int)ViewState[ CurPage ]==( (int)ViewState[ PageTotal ] ) )               ((LinkButton)Controls[ ]) Enabled = true;        ((LinkButton)Controls[ ]) Enabled   = true;        ((LinkButton)Controls[ ]) Enabled  = false;        ((LinkButton)Controls[ ]) Enabled  = false;              if (( (int)ViewState[ PageTotal ] ) == )               ((LinkButton)Controls[ ]) Enabled = false;        ((LinkButton)Controls[ ]) Enabled   = false;        ((LinkButton)Controls[ ]) Enabled  = false;        ((LinkButton)Controls[ ]) Enabled  = false;      

  CurPage  = (int)ViewState[ CurPage ];       RecTotal = (int)ViewState[ RecTotal ];       PageSize = (int)ViewState[ PageSize ];       CurPage  = (int)ViewState[ CurPage ];       Lang  = (int)ViewState[ Lang ];       PageTotal = (int)ViewState[ PageTotal ];     

  private void drop_CurPage_SelectedIndexChanged(object sender System EventArgs e)             ViewState[ CurPage ] = ((DropDownList)Controls[ ]) SelectedIndex;       PagerBind();

  if (PageChanged != null)        temp_Click(this EventArgs Empty);     

  private void btn_First_Click(object sender System EventArgs e)             ViewState[ CurPage ] = ;       PagerBind();

  if (PageChanged != null)        temp_Click(this EventArgs Empty);     

  private void btn_Pre_Click(object sender System EventArgs e)             ViewState[ CurPage ] = (int)ViewState[ CurPage ] ;       PagerBind();

  if (PageChanged != null)        temp_Click(this EventArgs Empty);     

  private void btn_Next_Click(object sender System EventArgs e)             ViewState[ CurPage ] = (int)ViewState[ CurPage ]+ ;       PagerBind();

  if (PageChanged != null)        temp_Click(this EventArgs Empty);     

  private void btn_Last_Click(object sender System EventArgs e)             ViewState[ CurPage ] = (int)ViewState[ PageTotal ] ;       PagerBind();

  if (PageChanged != null)        temp_Click(this EventArgs Empty);            #endregion        

  WebForm aspx  自定义分页控件测试页面

  具体效果展示页面 x

  <%@ Page language= c# Codebehind= WebForm aspx cs AutoEventWireup= false Inherits= MyWebControll WebForm %>    <%@ Register TagPrefix= cc Namespace= C_Pager Assembly= C_Pager %>    <!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN >    <HTML>     <HEAD>      <title>WebForm </title>      <meta content= Microsoft Visual Studio NET name= GENERATOR >      <meta content= C# name= CODE_LANGUAGE >      <meta content= JavaScript name= vs_defaultClientScript >      <meta content= name= vs_targetSchema >     </HEAD>     <body MS_POSITIONING= GridLayout >      <form id= Form method= post runat= server >       <FONT face= 宋体 >        <cc :pager id= Pager runat= server PageSize= ></cc :pager>        <asp:DataGrid id= DataGrid runat= server          Width= px Height= px ></asp:DataGrid></FONT></form>     </body>    </HTML>

  WebForm aspx cs  测试页面源码    using System;    using System Collections;    using System ComponentModel;    using System Data;    using System Drawing;    using System Web;    using System Web SessionState;    using System Web UI;    using System Web UI WebControls;    using System Web UI HtmlControls;    using System Data SqlClient;    using System Data OleDb;

  namespace MyWebControll         /**//// <summary>     /// WebForm 的摘要说明      /// </summary>     public class WebForm : System Web UI Page           protected C_Pager Pager Pager ;      protected OleDbConnection conn;      protected System Web UI WebControls DataGrid DataGrid ;      protected OleDbCommand cmd;

  private void Page_Load(object sender System EventArgs e)             // 在此处放置用户代码以初始化页面

  conn=new OleDbConnection( Provider=Microsoft Jet OLEDB ;Data Source= +Server MapPath( DataBase\\TestDataBase mdb ));       if(!Page IsPostBack)               DataBind( );            

  Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码      override protected void OnInit(EventArgs e)             //       // CODEGEN: 该调用是 ASP NET Web 窗体设计器所必需的        //       InitializeComponent();       base OnInit(e);     

  /**//// <summary>      /// 设计器支持所需的方法 不要使用代码编辑器修改      /// 此方法的内容       /// </summary>      private void InitializeComponent()             this Pager PageChanged += new System EventHandler(this Change);//这是必须的       this Load += new System EventHandler(this Page_Load);

        #endregion

  private void DataBind(int CurPage)  //数据绑定方法             cmd=new OleDbCommand( select * from news order by id desc conn);       OleDbDataAdapter adapter=new OleDbDataAdapter(cmd);       DataSet ds=new DataSet();       adapter Fill(ds Pager PageSize*CurPage Pager PageSize news );

  DataGrid DataSource=ds Tables[ news ];       DataGrid DataBind();

  cmd=new OleDbCommand( select count(id) from news conn);       conn Open();       Pager RecTotal = (int)cmd ExecuteScalar();       Pager DataBind();       conn Close();     

  private void Change(object sender System EventArgs e)             DataBind(Pager CurPage); //得到当前页记录集绑定到DataGird表上     

cha138/Article/program/net/201311/11748

相关参考

知识大全 一个相当独立的通用分页控件c#源码

  通用ASPNET数据分页控件  对于几乎所有的数据表现Web应用来说组织好数据的显示方式避免给用户带来混乱的感觉就是最主要的目标之一每个页面显示条记录当然是可以接受的但每页显示条记录就很容易给用户

知识大全 ASP.NET存储过程自定义分页详解

ASP.NET存储过程自定义分页详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 基于ASP.NET的自定义分页显示[1]

基于ASP.NET的自定义分页显示[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言  

知识大全 基于ASP.NET的自定义分页显示[3]

基于ASP.NET的自定义分页显示[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 基于ASP.NET的自定义分页显示[4]

基于ASP.NET的自定义分页显示[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 基于ASP.NET的自定义分页显示[2]

基于ASP.NET的自定义分页显示[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET中自定义DataGrid分页设置的实现

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

知识大全 Asp.NET自定义DataGrid控件

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

知识大全 Asp.net 2.0 自定义控件开发

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

知识大全 使用ASP.Net中的自定义控件

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