不如将这事件用Script实现!
<script language="C#" runat="server">
void Grid_Change(Object sender, DataGridPageChangedEventArgs e) 
   {
    DataGrid1.CurrentPageIndex = e.NewPageIndex;
    DataGrid1.DataBind();
   }
</script>在DataGrid1中响应Grid_Change事件:
<asp:DataGrid id="DataGrid1" ........
          ........ OnPageIndexChanged="Grid_Change">

解决方案 »

  1.   

    to: skywind6521(风)Code Behind 是有优点的!
      

  2.   

    thanks.
    楼上的,各有优点。多谢!
      

  3.   

    我也是在codebehind里搞不定才转向Script的,如果有哪位兄弟知道怎做的话.
    记得告诉我啊,先谢了!   :)
      

  4.   

    我估计你的脚本里有:<asp:DataGrid id="DataGrid1" ........
              ........ OnPageIndexChanged="Grid_Change">,这样的话去掉上面的private~~要不就去掉OnPageIndexChanged="Grid_Change"试试?
      

  5.   

    事件都是priveate啊!不过,你的代码有问题,就是bind之前,还需要重新指定datasource,否则,显示不出数据啊!而且,如果你对grid做了修改,那么这种修改在bind之前也要重新调用一次。
      

  6.   

    DataGrid1.DataBind();通常我是把这一句用一个方法代替
    quickstart中就是这样作的这个方法的实现,如下:
    private void BindGrid()
    {
    SqlDataAdapter myCommand = new SqlDataAdapter("select * from admin order by id", myConnection); DataSet ds = new DataSet();
    myCommand.Fill(ds, "admin"); myDataGrid.DataSource=ds.Tables["admin"].DefaultView;
    myDataGrid.DataBind();
    }当你每次对数据进行修改后,或者说翻页时都要重新bindgrid
    也就是说在翻页时不仅是datargid的bind,好要与数据源建立连接
    指令datagrid数据源然后再bind这样作肯定是会实现的
    不明白给我发短消息
      

  7.   

    太好了,楼上的方法令我做的工程调用 databind() 简单多了,谢谢!