小二哥's blog

----zhangzs8896(小二)

导航

一个功能比较齐全的DataGrid分页

Posted on 2004-10-15 19:43  小二哥  阅读(411)  评论(0编辑  收藏  举报

基本功能:分页(即包括DataGrid自定义分页,也包括自己写的分页)
                    提示当前页,以及总记录数。
先建一个aspx页面,这里我取名为:Grade.aspx
在Grade.aspx.cs下:
首先加一引用 using System.Data.SqlClient;

第一步:写一个绑定函数:
  private void BindGrid()
  {
   System.Data.SqlClient.SqlConnection con=cn;
   string str ="select * from SteelGrade order by 钢种代码";
   System.Data.DataSet ds=new DataSet();
   System.Data.SqlClient.SqlDataAdapter da=new SqlDataAdapter(str,con);
   da.Fill(ds,"JTQSpecStand");
   MyDataGrid.DataSource=ds.Tables["JTQSpecStand"].DefaultView;
            Lab_Count.Text="目前钢种总数 "+ds.Tables["JTQSpecStand"].Rows.Count.ToString();
   MyDataGrid.DataBind();
   ShowStats();
  }

第二步;写一个连接,并写好Page_Load事件
 public void OpenDatabase()
  {
   cn.ConnectionString="server=172.16.2.2;database=movex12;uid=sa;pwd=tpcims";
   cn.Open();
  }
在Page_Load事件中:
 private void Page_Load(object sender, System.EventArgs e)
  {
   btnFirst.Text = "最首页";
   btnPrev.Text = "前一页";
   btnNext.Text = "下一页";
   btnLast.Text = "最后页";
   OpenDatabase();
   BindGrid(); 
  }

第三步  //用来显示一些信息的
 private void ShowStats()
{
   lblCurrentIndex.Text = "第 " + (MyDataGrid.CurrentPageIndex + 1).ToString() + " 页 ";
   lblPageCount.Text = "总共 " + MyDataGrid.PageCount.ToString() + " 页 ";
  }
  public  void MyDataGrid_Page(object sender,DataGridPageChangedEventArgs e)
  {
   int startIndex;
   startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize;
   MyDataGrid.CurrentPageIndex = e.NewPageIndex;
   BindGrid();
   ShowStats();
  }

第四步: 最首页、上一页、下一页、最后页的相应代码如下:
  //执行下一页
  private void btnNext_Click(object sender, System.EventArgs e)
  {
   if(MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
   {
    MyDataGrid.CurrentPageIndex += 1;
    BindGrid();
    ShowStats();
   }
  }
  //执行前一页
  private void btnPrev_Click(object sender, System.EventArgs e)
  {
   if(MyDataGrid.CurrentPageIndex >0)
   {
    MyDataGrid.CurrentPageIndex -= 1;
    BindGrid();
    ShowStats();
   }
  }
//执行最首页
  private void btnFirst_Click(object sender, System.EventArgs e)
  {
   MyDataGrid.CurrentPageIndex = 0;
   BindGrid();
   ShowStats();
}
 //执行最后一页
  private void btnLast_Click(object sender, System.EventArgs e)
  {
   MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
   BindGrid();
   ShowStats();
}

--效果图: