datagrid翻页功能的自定义控件

转载 2006年06月15日 15:38:00

namespace XXXX.UserControl
{
  using System;
  using System.Data;
  using System.Drawing;
  using System.Web;
  using System.Web.UI.WebControls;
  using System.Web.UI.HtmlControls;
  using System.Data.SqlClient;

 /// <summary>
 ///  pagemanager 的摘要说明。
 /// </summary>
 public class pagemanager : System.Web.UI.UserControl
 {
  protected System.Web.UI.WebControls.Label lbl_pagecount;
  protected System.Web.UI.WebControls.Label lbl_currentpage;
  protected System.Web.UI.WebControls.Label lbl_num;
  protected System.Web.UI.WebControls.DropDownList DropDownList2;
  protected System.Web.UI.WebControls.LinkButton LinkButton3;
  protected System.Web.UI.WebControls.LinkButton LinkButton4;
  protected System.Web.UI.WebControls.LinkButton LinkButton2;
  protected System.Web.UI.WebControls.LinkButton LinkButton1;
  DataGrid myGrid;

  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面 
   myGrid=(DataGrid)Page.FindControl("myDataGrid");
    if(myGrid==null)
    {
     myGrid=(DataGrid)Page.FindControl("myGrid");
    }
   if(!IsPostBack)
   {
    this.BindPag();
    this.ShowStats();
   }
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  ///  设计器支持所需的方法 - 不要使用代码编辑器
  ///  修改此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
    this.DropDownList2.SelectedIndexChanged += new System.EventHandler       (this.DropDownList2_SelectedIndexChanged);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  #region 绑定到DataGrid控件
  private void DataBindToGrid()
  {
  Label mysqlLb=(Label)Page.FindControl("lbl_sql");
   DataSet ds=new DataSet();
   string  temp=mysqlLb.Text;
  
    ds=GetDataSet(temp[1].ToString(),temp[2].ToString());//获得dataset,需要自己写该函数或类

   myGrid.DataSource=ds.Tables[0].DefaultView;
   myGrid.DataBind();

   this.BindPag();
   this.ShowStats();
  }
  #endregion

  #region 分页BindPag()
  private  void BindPag()
  {
   //使DropDownList2的选择与DataGrid的页码同步,并重新填写DropDownList2的选项
   DropDownList2.Items.Clear();
   System.Web.UI.WebControls.ListItem li=new ListItem();
   for(int i=1;i<=this.myGrid.PageCount;i++)
   {
    li.Text =i.ToString(); 
    li.Value=i.ToString();
    //重新填写DropDownList2的选项
    this.DropDownList2.Items.Add(i.ToString());
    if(i==myGrid.CurrentPageIndex+1)
    {
     //使DropDownList2的选择与DataGrid的页码同步
     DropDownList2.SelectedIndex=DropDownList2.Items.IndexOf(DropDownList2.Items.FindByValue(i.ToString()));
    }
   }
  }
  #endregion

  #region 显示页控制按钮状态ShowStats()
  private void ShowStats()
  {
   lbl_currentpage.Text = "第 " + (myGrid.CurrentPageIndex + 1).ToString() + " 页";
   lbl_pagecount.Text = "总共 " + myGrid.PageCount.ToString() + " 页";
   lbl_num.Text=myGrid.PageSize .ToString() +"条/页";
   if (myGrid.CurrentPageIndex==0)
   {
    //如果选中的是首页
    this.LinkButton1.Enabled =false;
    this.LinkButton2.Enabled =false;
   }
   else
   {
    //不是首页
    this.LinkButton1.Enabled =true;
    this.LinkButton2.Enabled =true;
   }
   if (myGrid.CurrentPageIndex==myGrid.PageCount-1)
   {
    //如果选中的是尾页
    this.LinkButton3.Enabled=false;
    this.LinkButton4.Enabled =false;
   }
   else
   {
    //不是尾页
    this.LinkButton3.Enabled =true;
    this.LinkButton4.Enabled =true;
   }
  }
  #endregion

  #region 页选择 DropDownList2_SelectedIndexChanged
  private void DropDownList2_SelectedIndexChanged(object sender, System.EventArgs e)
  {
   //DropDownList2变化使datagrid显示页同步
   myGrid.CurrentPageIndex = System.Convert.ToInt32(DropDownList2.SelectedItem.Value)-1;
   DataBindToGrid() ;
   ShowStats();
  }
  #endregion

  #region 页面转换按钮响应函数PagerButtonClick
  public void PagerButtonClick(object sender, EventArgs e)
  {
   string arg = ((LinkButton)sender).CommandArgument.ToString();
   switch(arg)
   {
    case "next":
     if (myGrid.CurrentPageIndex <( myGrid.PageCount - 1))
     {
      myGrid.CurrentPageIndex += 1;
     }
     break;
    case "prev":
     if (myGrid.CurrentPageIndex > 0)
     {
      myGrid.CurrentPageIndex -= 1;
     }
     break;
    case "last":
     myGrid.CurrentPageIndex = (myGrid.PageCount - 1);
     break;
    default:
     myGrid.CurrentPageIndex = System.Convert.ToInt32(arg);
     break;
   }
   DataBindToGrid();
   ShowStats();
  }
  #endregion
 }
}
说明:在需要放置该控件的页面上,需要放置一个lbl_sql标签,用于存放sql语句(查询数据用)。

相关文章推荐

.net 简单翻页自定义控件

  • 2015年09月19日 23:48
  • 455KB
  • 下载

Android自定义控件实战——仿多看阅读平移翻页

之前自己做的一个APP需要用到翻页阅读,网上看过立体翻页效果,不过bug太多了还不兼容。看了一下多看阅读翻页是采用平移翻页的,于是就仿写了一个平移翻页的控件。在翻页时页面右边缘绘制了阴影,效果还不错。...

自定义翻页控件

  • 2012年04月25日 09:25
  • 225KB
  • 下载

C#自定义翻页组合控件

  • 2011年04月28日 18:05
  • 27KB
  • 下载

自定义控件实战高级实用篇 ,仿淘宝商品浏览界面,图书阅读器平滑翻页,滚动选择器

Android自定义控件实战——滚动选择器PickerView    手机里设置闹钟需要选择时间,那个选择时间的控件就是滚动选择器,前几天用手机刷了MIUI,发现自带的那个时间选择器效果挺...
  • he90227
  • he90227
  • 2014年08月30日 14:14
  • 1373

从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)

转载请注明出处:王亟亟的大牛之路开场白惯用鼓励诗句: 黑发不知勤学早,白首方悔读书迟。 —— 颜真卿《劝学诗》 这一系列的博文这是第五篇了,感谢大家的支持以及陪伴,往后我也会继续努力写出高质量的内...

Mobile下自定义DataGrid控件源代码

  • 2009年06月23日 09:22
  • 895KB
  • 下载

DataGrid模板列自定义控件

  • 2014年12月24日 10:37
  • 60KB
  • 下载

datagrid自定义分页控件

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:datagrid翻页功能的自定义控件
举报原因:
原因补充:

(最多只允许输入30个字)