gridview的模版列,以删除为例,代码是这样的:
        if(e.CommandName=="Del")
        {
        //得到要删除行的主键
        string ID=e.CommandArgument.ToString();
        }
我不明白得到的为什么就是对应行的id,而不是其他行的id呢,我的理解是,gridview对每条记录自动创建了一个删除按钮,不过这还是说服不了我,请大家帮忙解释一下,让我更好的理解.

解决方案 »

  1.   

    gridview对每条记录自动创建了一个删除按钮
    --------
    应该是这样的,每行都有按钮。
      

  2.   

    e.CommandArgument.ToString();
    里面的e就是你触发的行  
    当然得到就是你触发行的主键ID了
    不可能是别的行
      

  3.   

    你这样写也可以啊:
    if (e.CommandName == "del")
    {
       foreach(GridViewRow gvr in GridView.Rows)
       {
         string id2 = GridView1.DataKeys[(int)dvr.RowIndex].Value.ToString();
       }
    }
    意思是用GridView的每一行去遍历他的所有行 取得这一行的主键