DataKeyNames作為GridView中的一個屬性,我們可以利用這個屬性結合DataKeys方便的訪問GridView中每個字段的值。

先說怎么用

DataKeyNames可以直接在GridView屬性中設置,多個字段之間用逗號分隔,如:Id,Name,Sex 。

在用代碼綁定GridView時,也可以設置DataKeyNames:

復制代碼
1 gv.DataSource = Bind();
2
3 gv.DataKeyNames = new string[]
4 {
5   "Id","Name","Sex"
6 };
7
8 gv.DataBind();
復制代碼

DataKeyNames設置好以后,就可以用DataKeys來訪問DataKeyNames中每個字段的值了,假如寫在RowDeleting事件中

1 protected void gv_RowDeleting(object sender, GridViewDeleteEventArgs e)
2 {
3   string id = gv.DataKeys[e.RowIndex].Value.ToString();//對象中索引0位置的對象值
4 }

這樣寫也是對的:

1 string id = gv.DataKeys[e.RowIndex].Values["Id"].ToString();

按照索引同樣可以取:

1 string id = gv.DataKeys[e.RowIndex][0].ToString();//取Id
2 string name= gv.DataKeys[e.RowIndex][1].ToString();//取Name
3 string sex = gv.DataKeys[e.RowIndex][2].ToString();//取Sex

可以這樣用的原因:

當你設置了DataKeyNames屬性,它保存了指定數據庫中想要獲取值的列名,該屬性會自動填充到GridView控件的DataKeys集合