数据表是否支持分页?

时间:2012-08-01 05:53:22

标签: datatable

我正在使用数据表将数据绑定到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();

2 个答案:

答案 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;
    }

感谢。