日期:2014-05-17  浏览次数:20404 次

GridView分页激发了未处理的事件“PageIndexChanging”错误
今天晚上我在搞GridView分页分页时遇到了一个问题,我写了一个配置数据源的的方法
public void getdate()
  {
  String serv = "server=localhost;database=addressBook;user=sa;password=sasa";
  SqlConnection connection = new SqlConnection(serv);
  String sql = "select * from USERS";
  SqlCommand command = new SqlCommand(sql,connection);
  SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
  DataSet ds= new DataSet();
  dataAdapter.Fill(ds, "USERS");
  //绑定GridView数据源
  this.gvstu.DataSource = ds.Tables[0].DefaultView;
  this.gvstu.DataBind();//网页中此方法必须写
  }
然后,用一个按钮单击后加载数据,
 protected void btnTest_Click(object sender, EventArgs e)
  {
  getdate();
  }
设置分页后,当我测试时,显示了第一页的值,当我单击其他的叶数时就出错了,显示“gvstu分页激发了未处理的事件“PageIndexChanging”错误,我查找了一些资料后我又写了一个方法:
protected void gvstu_PageIndexChanging(object sender, GridViewPageEventArgs e)
  {
  this.gvstu.PageIndexChanging += gvstu_PageIndexChanging;
  this.gvstu.PageIndex = e.NewPageIndex;
  getdate();
  }
然后测试成功了。
但我感觉这似乎有点麻烦,谁有号的办法介绍一下?(gvstu是GridView的名字,我的数据库有两万多条数据,我感觉这样加载太慢了)

------解决方案--------------------
1.用存储过程 配合aspnetpager分页
2.看看这个 有视频http://topic.csdn.net/u/20101026/09/d7939d63-f02d-4dfa-a809-77d72f7b9537.html?79000
------解决方案--------------------
OnPageIndexChanging= "GridView1_PageIndexChanging "> 
PageIndexChanging事件中写 
GridView1.PageIndex = e.NewPageIndex; 
GridView1.DataSource ... 
GridView1.DataBind();