2012-08-01 32 views
0

我正在使用数据表将数据绑定到gridview.I想要允许分页。我该如何做分页? 这是我使用的代码。数据表是否支持分页或不分页?

  SqlConnection con = new SqlConnection(getconnectionString()); 
      SqlCommand cmd = new SqlCommand("Sps_pagingshow", con); 
      con.Open(); 
      cmd.CommandType = CommandType.StoredProcedure; 
      //cmd.Parameters.AddWithValue("@PageIndex", pageIndex); 
      //cmd.Parameters.AddWithValue("@PageSize", int.Parse(ddlPageSize.SelectedValue)); 
      //cmd.Parameters.Add("@RecordCount", SqlDbType.Int, 4); 
      //cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output; 

      IDataReader idr = cmd.ExecuteReader(); 
      GridView1.DataSource = idr; 
      GridView1.DataBind(); 
      idr.Close(); 
      con.Close(); 

回答

0

Datatable is disconnected architecture,所以它不支持分页。

根据MSDN,通过将GridView自动寻呼仅支持数据源,或者用于实现ICollection接口或它的后代中的一个(即可枚举,字典,列表,队列,堆等)的对象

DataTable不符合其中任何一个计数,因此您怀疑DataTable不支持自动分页是正确的。但是,正如您所了解的,您可以通过编程方式浏览DataTable。另一种方法是使用DataTable来填充支持分页的集合。

0

使用GridView的“OnPageIndexChanging”事件来允许默认分页。

protected void index_changing(object sender, GridViewPageEventArgs e) 
    { 
     gridview.PageIndex = e.NewPageIndex; 
    } 

谢谢。