我看了下网上的资料,都说要这么写:
protected void Grid_RowUpdating(object sender, GridViewUpdatedEventArgs e)
    {        string id = this.GridDetail.DataKeys[e.RowIndex].Value.ToString(); //获取更新行ID
        GridViewRow row = this.GridDetail.Rows[e.RowIndex];  //定义更新行对象
          //然后是更新数据和重新绑定       
    }
但是我再写第一行代码时e.后为什么没有RowIndex的提示啊?

解决方案 »

  1.   

    写错了是,我在写第一行代码时[e.RowIndex]里e.后没有提示
      

  2.   

    没道理啊,你核对一下参数是不是(object sender, GridViewUpdatedEventArgs e) 
    你是用webform还是Winform?
      

  3.   

    是WEBFORM,protected void Grid_RowUpdating(object sender, GridViewUpdatedEventArgs e){}
    有人说可能是ROWUPDATING方法被重写了,你看我函数名是不是不一样
        
      

  4.   

    是不是你直接把别人给的代码拷上去了,你的Gridview控件名就是Grid么?
      

  5.   

    刚才掉线了,没有,我在实习。控件名是GridDetail,但是在HTML里这么设置了一下OnRowEditing="Grid_RowEditing"
    我现在想到一个方法,但是代码写不出来。用那个ROWINDEX无非是为了确定行,现在那个属性没了,可以通过主键来确定每一行,而我的主键是DEPTNUMBER。
    不知道你能不能告诉我,怎么写
      

  6.   

    protected void GridDetail_RowUpdating(object sender, GridViewUpdatedEventArgs e) 
        {         string id = this.GridDetail.DataKeys[e.RowIndex].Value.ToString(); //获取更新行ID 
            GridViewRow row = this.GridDetail.Rows[e.RowIndex];  //定义更新行对象 
              //然后是更新数据和重新绑定       
        } 是这样的吧
      

  7.   

    对,我是想用这个方法,但是当我写e.时,提示栏里没有RowIndex属
      

  8.   

    弄明白了,我忘记在GRIDVIEW的前台代码里加上事件的声明了,加上OnRowUpdating="GridDetail_RowUpdating" 的声明就OK了。