GridView显示数据为隐藏,但值依然可以获取[转]
我们经常有这样的需求:用GridView显示数据时候,要显示的数据中没有主键,但是我们却需要主键(更新或者删除操作),在ASP.NET中的GirdView中,如果我们用这样方法(也绑定主键那列,但是只是不显示,设置Visualable=false)是不可行的。现在设置了不显示的列的数据已经不会再发送到客户端了。
难道就没办法了么?当然有,GridView提供了一个叫做DataKeyNames的属性。设置它就可以将那些不在客户端显示的数据放在服务器端了。使用的时候也很简单。
只要设置m_GridView1.DataKeyNames = new string[] { "CategoryID" }; 就行了。当然了,可以设置很多列。
想得到值的时候,就这样用
m_GridView1.DataKeys[e.RowIndex].Values[0]。它是一个和列对应的数组,里面的值也是一个数组,所以比如想得到第二行对应的CategoryID就这样写m_GridView1.DataKeys[1.Values[0].ToString()。
是不是很简单很方便啊。呵呵。