注册 登录
编程论坛 ASP.NET技术论坛

有关GridView的DatakeyNames属性

xudongcsharp 发布于 2009-11-25 14:27, 2169 次点击
DatakeyNames属性存取的字段值是否与你绑定到GridView中的字段必须一样??

也就是说在GV中出现的字段必须存储在DatakeyNames中,这样后台才能取出相应的字段值??

到网上查了一下DatakeyNames属性是用来存储主键用的!

可是我并不想把主键显示在GV中!

但是在执行更新、删除命令时还必须判断用到主键,这时我该怎么办?
不知道描述够不够清楚...
2 回复
#2
accpfriend2009-11-25 18:11
清楚你想要的,,


 GridView 中的DataKeyNames  注意到没有他是 复数形式,

即可,放多个值,,,,,,,,这里存放的值最好是唯一标识值(不是一定要主键)...........值不一定要在列字段显示,,,,,,,


实例说明:

      foreach (GridViewRow gvRow in this.GridView1.Rows)
        {
            RadioButton radIsScombCode = gvRow.Cells[0].FindControl("radIsScombCode") as RadioButton;  
            if (radIsScombCode.Checked== true)
            {
                TextBox txtNowScombMoney = gvRow.Cells[3].FindControl("txtNowScombMoney") as TextBox;
                agentInfo400Model.ScombCode = GridView1.DataKeys[gvRow.RowIndex].Value.ToString();    //这里就是你要取得当明点击行索引 datakeys值  这里你如是多个值时,你可以用  GridView1.DataKeys[gvRow.RowIndex].Value[0].ToString() 来取得
               
                agentInfo400Model.NowScombMoney = txtNowScombMoney.Text == "" ? gvRow.Cells[2].Text : txtNowScombMoney.Text;  //优惠价格;
            }
        }

还有什么不明白,再问吧

#3
xudongcsharp2009-11-30 10:32
回复 2楼 accpfriend
首先谢谢你详细的回答!
 我还有不明白的地方!
我在datakeynames里存的字段是不是要和显示在GV中的字段一起写在SQL语句中?
我存的这个字段必须人工从数据库取出来?
可否加你QQ详细聊一下!
顺便给你个例子看看!

[ 本帖最后由 xudongcsharp 于 2009-11-30 10:33 编辑 ]
1