исключение, когда я пытался обновить свой gridview в asp.net - PullRequest
2 голосов
/ 19 сентября 2011

, когда я пытался обновить свой gridview, который подключен с использованием <asp:LinqDataSource> и включением обновления и удаления в этом источнике данных, я получил исключение, сказавшее мне, что:

Ошибка времени выполнения javaScript: Sys.WebForms.PageRequestManagerServerErrorException: не удалось найти строка, соответствующая заданным ключам в исходных значениях, хранящихся в ViewState. Убедитесь, что словарь ключей содержит уникальный ключ значения, соответствующие строке, возвращенной из предыдущего выбора работа.

Как я могу решить это исключение?

Ответы [ 4 ]

12 голосов
/ 19 сентября 2011

Вы должны добавить DataKeyNames="ID" в свойствах Gridview ID - ключевой столбец таблицы базы данных.

0 голосов
/ 08 июня 2015

Только что получил ошибку при обновлении старого проекта VB.net, и даже он работает в старом, и новый проект также является VB.Net, "DataKeyName" является CASE-SENTIVE ....

Это значит: KeyId отличается от KeyID

Dammm ...

0 голосов
/ 19 сентября 2011

Это похоже на то, как вы привязывали грид к некоторым другим данным, когда страница отправляется обратно на сервер - коллекция ключей сохраняется в ViewState при рендеринге страницы, пользователь выбирает одну строку, но возвращается на сервер, который вы перепривязываете выбранная пользователем сетка и ключ недоступны в коллекции ключей.

0 голосов
/ 19 сентября 2011

Может быть, вы удаляете несколько строк во время цикла или используете ViewState вида сетки. Попробуйте взять фиктивный вид данных, чтобы удалить необходимые строки.

...