Сведения о вопросе

rjevskii

02:18, 11th August, 2020

Теги

asp.net    

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

Просмотров: 375   Ответов: 2

У меня есть datalist с OnDeleteCommand="Delete_Command".

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

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



  Сведения об ответе

ЯЯ__4

21:52, 9th August, 2020

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

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"]...
}


  Сведения об ответе

baggs

16:09, 1st August, 2020

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

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

Key1UnderscoreKey2UnderscoreKey3

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

Правка: подчеркивание потерялось во время форматирования, оно заменяется курсивным текстом. Поэтому вместо того, чтобы "underscore" слово использовать реальные подчеркивает


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться