关闭

如何在DataGrid 控件中实现自定义分页操作

734人阅读 评论(0) 收藏 举报

   在一般情况下,DataGrid控件每次翻页操作时,都会将数据源中的数据重新调用依次,当数据源中的数据比较多的时候,这样就会浪费系统的资源和降低程序执行的效率,解决的办法就是如同标题所说,依靠自定义实现分页操作.

  前台代码:

    <asp:datagrid id="DataGrid2" runat="server" PageSize="5" AllowPaging="True" AutoGenerateColumns="False" AllowCustomPaging="True">
<Columns>
<asp:BoundColumn DataField="Productid" HeaderText=" Productid"></asp:BoundColumn>
<asp:BoundColumn DataField="Uniqueid" HeaderText="Uniqueid"></asp:BoundColumn>
<asp:BoundColumn DataField="Station" HeaderText="Station"></asp:BoundColumn>
<asp:BoundColumn DataField="Result" HeaderText="Result"></asp:BoundColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>
<asp:button id="Button2" runat="server" Text="显示Datagrid2中的内容"></asp:button>
 后台代码:
声明全局变量:
int startIndex=0;
private void Button2_Click(object sender, System.EventArgs e)
  {
   DataGridDataBindNew();
  }
  public void DataGridDataBindNew()
  {
   string model="V810";
   OracleConnection  conn=new OracleConnection(StoneFunction.neworacleconn(model));
   OracleDataAdapter OracleDa=new OracleDataAdapter("select productid,uniqueid,station ,result from v810.stationinfo",conn);
   DataSet ds=new DataSet();
  
   try
   {
    OracleDa.Fill(ds,startIndex,DataGrid2.PageSize,"CurDataTable");
    OracleDa.Fill(ds,"AllDataTable");
                DataGrid2.VirtualItemCount=ds.Tables["AllDataTable"].Rows.Count;
    DataGrid2.DataSource=ds.Tables["CurDataTable"];
    DataGrid2.DataBind();
  
    DataGrid2.Visible=true;
   }
   catch
   {
    try
    {
     DataGrid2.CurrentPageIndex=0;
     DataGrid2.DataBind();
     DataGrid2.Visible=true;
    }
    catch
    {
     //this.lblError.Text="No data for selection";
     //this.lblError.Visible=true;
    }
   }
   conn.Close();
   conn.Dispose();
   cmd.Dispose();
  }

  private void DataGrid2_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   DataGrid2.CurrentPageIndex=e.NewPageIndex;
   startIndex=DataGrid2.PageSize*DataGrid2.CurrentPageIndex;
   DataGridDataBindNew();
   current_label.Text="当前页:"+DataGrid2.CurrentPageIndex;
  }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:131602次
    • 积分:598
    • 等级:
    • 排名:千里之外
    • 原创:52篇
    • 转载:4篇
    • 译文:1篇
    • 评论:48条
    最新评论