2011-12-09 8 views
1

SqlDatasourceからの情報を表示するグリッドビューがあります。グリッドビューには、行の最後にある編集ボタンと削除ボタンの情報が表示されます。クリックした行の主キーを取得します(編集および削除ボタン)

編集または削除ボタンをクリックすると、C#のテーブルからその行の主キーを取得します。このため

私は2つの機能をオーバーライド:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    Response.Write(e.NewEditIndex); 
} 

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 
    Response.Write(SqlDataSource1.DeleteCommand); 
} 

をしかし、私は主キーの値を取得することはできません。どうやってやるの?

答えて

1

GridViewは、キーフィールドのコレクションであるDataKeyNamesプロパティを使用します。 KeyFieldの値を取得するには、GridView1.DataKeysプロパティを使用します。

Response.Write(GridView1.DataKeys[e.NewEditIndex].Value); 
1

あなたはそのliekバインドされたデータオブジェクトにアクセスすることができます。

dataGridView1.Rows[e.NewEditIndex].DataBoundItem 

あなたは、あなたのデータ型にキャストする必要があり、あなたはすべてのプロパティにアクセスすることができます。

+0

1のコントロールから値を取得するには –

0
e.NewEditIndex 

キーではなく編集中の行のインデックスが表示されます。 は、キーをretriveあなたの良い応答のためのインデックス行

Dim gvRow As GridViewRow = lb.BindingContainer ‘Getting current row to get index 
Dim strKey As String = GridView1.DataKeys[gvRow.RowIndex][0].ToString() 
関連する問題