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集合