Удалить строку Datalist с несколькими первичными ключами

У меня есть список данных с OnDeleteCommand = "Delete_Command".

Я хочу удалить запись с несколькими основными ключами, но я не знаю, как получить к ней доступ из события Delete_Command.

Если я использую DataKeyField, я ограничен только одним ключом. Есть ли обходные пути для этого?

21.08.2008 07:13:24
2 ОТВЕТА
РЕШЕНИЕ

Вы можете получить доступ ко всем ключам:

gridView.DataKeys[rowNum][dataKeyName]

где rowNum - это e.RowIndex из обработчика события gridView_RowDeleting, а dataKeyName - это ключ, который вы хотите получить:

<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"]...
}
1
21.08.2008 07:31:42

Ой, прости, я пропустил это.

AFAIK нет такой возможности по умолчанию. Может быть, вы можете создать составной ключ из ваших первичных ключей, например

Key1UnderscoreKey2UnderscoreKey3

и разделить его в обработчике событий. Так что это многоключевой обработчик для DataList :-)

Редактировать: подчеркивание потеряно во время форматирования, оно заменяется курсивом. Поэтому вместо слова «подчеркивание» используйте настоящие подчеркивания

0
21.08.2008 09:25:27