以编程方式将Datakey添加到现有的DataKeys集

时间:2012-08-11 04:59:48

标签: asp.net gridview datakey

我有一个GridView,它有一些数据键。在特定情况下,我需要在页面的Load事件期间从后面的代码中添加一个额外的datakey。

如何以编程方式将数据键添加到GridView中的现有数据键集?

2 个答案:

答案 0 :(得分:3)

最简单的方法是将DataKeyNames的String数组转换为ArrayList,添加新的DataKeyName,然后将此ArrayList转换回String()数组,然后使用它设置Gridview的DataKeyNames属性。这是一个例子:

Dim arr As New ArrayList()
Dim keys As String() = GridView1.DataKeyNames

//Convert to an ArrayList and add the new key.
arr.AddRange(keys)
arr.Add("New Key")

//Convert back to a string array and set the property.
Dim newkeys As String() = CType(arr.ToArray(Type.GetType("System.String")), String())
GridView1.DataKeyNames = newkeys

答案 1 :(得分:3)

试试这个

 //get length of existing keys
 int keyLength = MyGrid.DataKeyNames.Length;

 //create newkeys array with an extra space to take the new key
 string[] newkeys = new string[keyLength+1];

 //copy the old keys to the newkeys array
 for (int i = 0; i < keyLength; i++)
    newkeys[i] = MyGrid.DataKeyNames[i];

 //add the new key in the last location
 newkeys[keyLength] = "MyNewKey";

 //update your datakeys
 MyGrid.DataKeyNames = newkeys;