Что касается использования управления Gridview на той же странице, выясняется, что событие обновления не может быть откликнуто сервером, похоже, что сигнал об ошибке и затем запрашивает информацию, и теперь решение обобщено следующим образом: Нажмите на событие обновления не может ответить, потому что параметр обратной связи или обратного вызова недействительны. Валидация событий включена в конфигурации с помощью <pages enableEventValidation="true"/> или <%@ Page EnableEventValidation="true" %> на страницах. В целях безопасности эта функция проверяет, что параметры событий обратной связи или вызова исходят от серверного управления, который их изначально отрисовал. Если данные корректны и ожидаемы, используйте Clientscrip, чтобы удалить метод tManager.RegisterForEventValidation для регистрации данных обратной связи или обратного вызова для проверки.
Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Проверьте информацию stack trace на детали об ошибке и откуда она появилась в вашем коде, который её вызвал.
Детали исключений: System.ArgumentException: Некорректные параметры обратной связи или обратного вызова. Валидация событий включена в конфигурации с помощью < страниц enableEventValidation="true"/> или <% @ Page EnableEventValidation="true" %> на страницах. В целях безопасности эта функция проверяет, что параметры события обратной связи или вызова исходят от серверного управления, который их изначально отрисовал. Если данные корректны и ожидаемы, используйте Clientscrip, чтобы удалить метод tManager.RegisterForEventValidation для регистрации данных обратной связи или обратного вызова для проверки. После долгого изучения я не нашёл никаких проблем, и я снова проверил код, проверил ID и атрибуты всех элементов управления на странице, но всё равно не нашёл проблему. Позже я узнал, что произошло вот что: Условия возникновения: 1. На экране есть скрытые органы управления. 2. Множество привязок Gridview. 3. Вложенные в несколько форм. Причины возникновения: . .NET генерирует __EVENTVALIDATION скрытое поле на финальной странице на основе выходных элементов на странице. Был проведён простой тест. Создайте <asp: button id="btnSubmit" runat="server" text="Submit" tooltip="Отправить" /> и создать соответствующий обработчик событий Click. Запустите программу и правильно отреагируйте на событие. Затем установите btnSubmit.Visable=false и вручную добавьте <input type="submit" name="btnSubmit" value="Submit" /> на странице. Запустите программу, и с содержимым EnableEventValidation появится исключение. Установите <@Page EnableEventValidation="false" > запустите программу повторно, чтобы правильно ответить на событие. Наблюдая за содержанием этих двух __EVENTVALIDATION до и после, можно увидеть, что они отличаются. Что касается возникающего исключения, можно считать, что btnSubmit не включён в результат, но когда он отправляется в фон, соответствующее содержимое непоследовательно, поэтому в случае проверки события включены. .NET делает исключение.
Решение 1: Page_Load(отправитель объектов, EventArgs e)
{ если (! Страница.IsPostBack) { данные связывания; }
} Решение 2: <pages enableEventValidation="false"/> 1. Добавить EnableEventValidation="false" на язык страницы <%@ Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> страницы. (Во-первых)
2. Пройдите через web.config <system.web> <pages enableEventValidation="false"/>
3. Это вложение форм, страница может содержать только одну форму, которую можно решить при тщательной проверке кода.
4. Если на странице есть такие элементы, как DropDownList или ListBox, это может быть вызвано следующими причинами:
4.1 Использование ajax в выпадающем меню часто встречается в меню связей между провинциями и городами, что может быть связано с тем, что начальное значение элемента выпадающего меню назначено странице aspx, ошибка возникает при публикации события, при этом начальное значение элемента из выпадающего меню удаляется, и элемент добавляется в связанное событие. 4.2 Причина в том, что свойство Value в ListItem управления DropDownList содержит китайские иероглифы. Просто измените значение на английский или число. Лучше всего добавить следующее утверждение в web.config: <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/> Поскольку POSTBACK не кодируется в UTF-8, удаление t в JAVAscrip будет считаться проблематичным. Просто измените requestEncoding="utf-8" на него, но responseEncoding="utf-8" этого не делает
5. Зарегистрируйтесь для проверки событий Принцип заключается в том, чтобы asp.net записали это значение после обратной связи. При рендере необходимо вызывать RegisterForEventValidation.
|