Я действительно ненавижу эту ошибку, потому что это может быть очень трудно точно определить.
В этом случае у меня есть страница с пользовательским элементом управления, которая содержит сетку. При нажатии кнопки для просмотра одной из записей в виде сетки открывается всплывающее окно (в форме модального диалога), позволяющее пользователю редактировать поля. Затем, когда всплывающее окно закрыто, запускается код кнопки на стороне сервера, что в конечном итоге приводит к строке кода, которая вызывает GridView1.databind () ;. Когда эта строка кода будет запущена, я получу неверную ошибку обратной передачи. Если эта строка закомментирована, я не получаю ошибку. Это происходит независимо от того, вносил ли я какие-либо изменения во всплывающее окно. И ни в коем случае клиентский код не изменяет значения в моих элементах управления.
Итак, похоже, что что-то изменилось с сеткой, что ему не нравится. Я думаю, что это может иметь отношение к ObjectDataSource, который он использует. Я заметил, что до того, как представление сетки будет привязано к данным, входные параметры ODS устанавливаются с использованием значений сеанса. В любом случае, там что-то меняется, что вызывает эту ошибку. Итак, я попытался сделать:
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
Page.ClientScript.RegisterForEventValidation(GridView1.UniqueID);
base.Render(writer);
}
Я также попытался зарегистрировать ODS. Но ни один из подходов не решил мою проблему.
Что мне делать? Я полностью озадачен на этом этапе.