Недопустимая ошибка обратной передачи при привязке данных к сетке - PullRequest
2 голосов
/ 13 мая 2009

Я действительно ненавижу эту ошибку, потому что это может быть очень трудно точно определить.

В этом случае у меня есть страница с пользовательским элементом управления, которая содержит сетку. При нажатии кнопки для просмотра одной из записей в виде сетки открывается всплывающее окно (в форме модального диалога), позволяющее пользователю редактировать поля. Затем, когда всплывающее окно закрыто, запускается код кнопки на стороне сервера, что в конечном итоге приводит к строке кода, которая вызывает GridView1.databind () ;. Когда эта строка кода будет запущена, я получу неверную ошибку обратной передачи. Если эта строка закомментирована, я не получаю ошибку. Это происходит независимо от того, вносил ли я какие-либо изменения во всплывающее окно. И ни в коем случае клиентский код не изменяет значения в моих элементах управления.

Итак, похоже, что что-то изменилось с сеткой, что ему не нравится. Я думаю, что это может иметь отношение к ObjectDataSource, который он использует. Я заметил, что до того, как представление сетки будет привязано к данным, входные параметры ODS устанавливаются с использованием значений сеанса. В любом случае, там что-то меняется, что вызывает эту ошибку. Итак, я попытался сделать:

protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
    Page.ClientScript.RegisterForEventValidation(GridView1.UniqueID);
    base.Render(writer);
}

Я также попытался зарегистрировать ODS. Но ни один из подходов не решил мою проблему.

Что мне делать? Я полностью озадачен на этом этапе.

1 Ответ

1 голос
/ 07 апреля 2010

Я почти уверен, что неверная ошибка обратной передачи возникает из-за того, что вы обратились к функции привязки данных в Page_Load.

...