データリストには、OnDeleteCommand = "Delete_Command"があります。複数の主キーを持つデータリスト行を削除
複数の主キーを持つレコードを削除しますが、Delete_Commandイベントからアクセスする方法がわかりません。
私がDataKeyFieldを使用する場合、私は1つのキーに制限されます。 これにはどのような回避策がありますか?
データリストには、OnDeleteCommand = "Delete_Command"があります。複数の主キーを持つデータリスト行を削除
複数の主キーを持つレコードを削除しますが、Delete_Commandイベントからアクセスする方法がわかりません。
私がDataKeyFieldを使用する場合、私は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"]...
}
ああ、:たrowNumがgridView_RowDeletingイベントハンドラからe.RowIndexで、dataKeyNameはあなたが取得したいキーです
gridView.DataKeys[rowNum][dataKeyName]
を申し訳ありませんが、私はそれを逃した。
AFAIKデフォルトではこのような可能性はありません。たぶん、あなたは
Key1UnderscoreKey2UnderscoreKey3
のように、あなたの主キーから複合キーを作成し、イベントハンドラで、それを分割することができます。これはDataListのためのDIYマルチキーハンドラです:-)
編集:アンダースコアはフォーマット中に失われました。斜体で置き換えられます。したがって、 "アンダースコア"の代わりに実際のアンダースコアを使用してください。