我正在使用数据表将数据绑定到gridview。我想允许分页。我怎么做分页? 这是我用过的代码。
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 :(得分:0)
Datatable是断开连接的架构,所以它不支持分页。
根据msdn,通过GridView的自动分页仅支持数据源,或者支持实现ICollection接口或其后代之一的对象(即Enumerable,Dictionary,List,Queue,Stack等)
DataTable不符合其中任何一个计数,因此您怀疑DataTable不支持自动分页是正确的。但是,正如您所了解的那样,您可以通过编程方式浏览DataTable。另一种方法是使用DataTable填充支持分页的集合。
答案 1 :(得分:0)
使用GridView的“OnPageIndexChanging”事件允许默认分页为。
protected void index_changing(object sender, GridViewPageEventArgs e)
{
gridview.PageIndex = e.NewPageIndex;
}
感谢。