日期:2014-05-18  浏览次数:20494 次

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

------解决方案--------------------
gridview对每条记录自动创建了一个删除按钮
--------
应该是这样的,每行都有按钮。
------解决方案--------------------
因为你点击的是那一行的删除按钮吧
当按钮事件发生后,它送出的消息里边包含了本行的id值
------解决方案--------------------
e.CommandArgument.ToString();
里面的e就是你触发的行
当然得到就是你触发行的主键ID了
不可能是别的行
------解决方案--------------------
你这样写也可以啊:
if (e.CommandName == "del ")
{
foreach(GridViewRow gvr in GridView.Rows)
{
string id2 = GridView1.DataKeys[(int)dvr.RowIndex].Value.ToString();
}
}
意思是用GridView的每一行去遍历他的所有行 取得这一行的主键