当前位置: 代码迷 >> ASP.NET >> 转不过来弯了解决思路
  详细解决方案

转不过来弯了解决思路

热度:5553   发布时间:2013-02-25 00:00:00.0
转不过来弯了
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的每一行去遍历他的所有行 取得这一行的主键
  相关解决方案