protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
 {
       int index = Convert.ToInt32(e.CommandArgument);
       if (e.CommandName == "del")
           string musicno = GridView1.Rows[index].Cells[0].Text;
  }
代码如上,页面并没有写CommandArgument这个属性,用这个方法刚开始好使,但是过了一段时间后来就不好使了,没有改过别的地方,请问这是什么原因?

解决方案 »

  1.   

    e.CommandArgument 应该是e.RowIndex  网上搜下相关Gridview的一些操作
      

  2.   

    网上看挺多人都说用这个方法,刚试了在这个事件中没有e.RowIndex属性
      

  3.   

     你的 e.CommandArgument 应该是绑定了分页后的序号? 既然前台页没有绑定任何的CommandArgument int index = Convert.ToInt32(e.CommandArgument); 这里会出错的。 建议这里打上断点,监视e.CommandArgument的值。 或者在_RowCommand事件中 
      //获取改行
      GridViewRow gvr = ((Control)sender).Parent.Parent as GridViewRow;
     
      

  4.   


    因为你的实现是在 GridView1_RowCommand 事件如果是在 _RowCreated 会有e.Row.RowIndex
      

  5.   

     3L 呢?   回答半天被吃了? 你要在GridView1_RowCommand 获取当前行,可以采用这种方法
            //獲取該行
            GridViewRow gvr = ((Control)sender).Parent.Parent as GridViewRow;
      

  6.   

     GridViewRow gvr = ((Control)sender).Parent.Parent as GridViewRow;这个方法还是不行,gvr是null...
      

  7.   


      //获取改行
      GridViewRow gvr = ((Control)e.CommandSource).Parent.Parent as GridViewRow;
     这里改一下看看呢?
      

  8.   

    给个链接你看看, 获取选中行的http://wenku.baidu.com/view/1f2fca8c6529647d2728522f.html
      

  9.   

    楼上的方法试过了,还是不好使,不知道为什么...
    我用Eval函数解决了...