複数の主キーを持つデータリスト行を削除


4

データリストには、OnDeleteCommand = "Delete_Command"があります。

複数の主キーを持つレコードを削除しますが、Delete_Commandイベントからアクセスする方法がわかりません。

私がDataKeyFieldを使用する場合、私は1つのキーに制限されます。 これにはどのような回避策がありますか?

1

あなたはキーのすべてにアクセスできます。

<asp:GridView ID="gridView" runat="server" DataKeyNames="userid, id1, id2, id3" OnRowDeleting="gridView_RowDeleting"> 

protected void gridView_RowDeleting(object sender, GridViewDeleteEventArgs e) 
{ 
    gridView.DataKeys[e.RowIndex]["userid"]... 
    gridView.DataKeys[e.RowIndex]["id1"]... 
    gridView.DataKeys[e.RowIndex]["id2"]... 
    gridView.DataKeys[e.RowIndex]["id3"]... 
} 

0

ああ、:たrowNumがgridView_RowDeletingイベントハンドラからe.RowIndexで、dataKeyNameはあなたが取得したいキーです

gridView.DataKeys[rowNum][dataKeyName] 

を申し訳ありませんが、私はそれを逃した。

AFAIKデフォルトではこのような可能性はありません。たぶん、あなたは

Key1UnderscoreKey2UnderscoreKey3

のように、あなたの主キーから複合キーを作成し、イベントハンドラで、それを分割することができます。これはDataListのためのDIYマルチキーハンドラです:-)

編集:アンダースコアはフォーマット中に失われました。斜体で置き換えられます。したがって、 "アンダースコア"の代わりに実際のアンダースコアを使用してください。