大家有没有考虑过这个问题:datagrid分页,viewstate到底起什么作用?
使用asp.net DataGrid控件本身的分页功能,在page_load中加载数据绑定到控件。
但是每次点击datagrid的页序号,需要执行page_load中的加载数据代码,每次都要访问数据库,而这是不可缺少的,不然分页不起作用!!
每次都要重新访问数据,重新加载绑定到控件@_@
这个过程中,datagrid的ViewState起的作用好像只是索检到10000条数据中的当前页的20条,其他9980完全被过滤掉了。
是这样的吗??
这样的话,内置的这个分页功能,对于大数据量来说,实在是太糟糕了!
private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection conn = new SqlConnection("user id=sa;password=511;server=(local);database=abc;");
SqlDataAdapter objDataAdapter=new SqlDataAdapter("select * from Table1",conn);
DataSet ds = new DataSet();
objDataAdapter.Fill(ds);
this.DataGrid1.DataSource = ds;
this.DataGrid1.DataBind();
}
...
...
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex = e.NewPageIndex;
this.DataGrid1.DataBind();
}