我正在使用通过函数填充的GridView编写一个简单的原型前端,而不是直接链接到SqlServer数据源。
所以我可以从目前
的网格/底层数据库中删除一行/记录这似乎工作正常,但我不想向用户显示ID,因为它们对他们没有任何意义。
我尝试将id列的Visible属性设置为false,但这导致上面的第4步返回一个空字符串 - 因此没有删除任何记录。
那么如何在每一行存储hidded id号?
或者我是否完全以错误的方式解决这个问题?
跟进答案:
感谢你们的回答,最终走向了Eric的DataKeyNames方式。对于像我一样刚接触ASP.NET的其他人,我使用的步骤
在我设置网格DataSource并调用DataBind()的行之间,我添加了
grid.DataKeyNames = new string[] {"id"};
然后在处理RowDeleting的函数中,我使用
获取了我的id grid.DataKeys[e.RowIndex].Value
答案 0 :(得分:3)
GridView具有DataKeyNames属性。将数据源绑定到网格时,可以设置DataKeyNames(通常只有一个名称,即PK字段)。你没有显示PK,但你可以从代码隐藏中获得它。
答案 1 :(得分:0)
Visible = false表示不在页面上呈现。你想要的是要么使它成为模板字段并使用HiddenField来保存值或将控件上的样式设置为“display:none;”。如果客户端代码需要访问Ajax调用的值,那就是这种情况。
否则使用DataKeyNames属性为@Eric Z Beard建议。