#asp.net #updatepanel
#asp.net #панель обновления
Вопрос:
Я не понимаю, почему это происходит. Я добавил следующий код в свой ASP.NET проект, и он работал просто отлично несколько дней назад. Затем я продолжил работу над страницей, пока сегодня я не попытался нажать кнопку «Подтвердить» из приведенного ниже кода, и вот что происходит:
Во-первых, это asp.net код:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="TextVerifyName" runat="server" CssClass="input1" EnableViewState="false"></asp:TextBox>
<asp:Button ID="ButtonVerifyName" runat="server" Text="Verify" CssClass="checkButton" onclick="ButtonVerifyName_Click" />
<asp:UpdateProgress ID="UpdateProgressVerifyName" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate>
<img src="Graphics/spinner.gif" alt="Please wait" />
</ProgressTemplate>
</asp:UpdateProgress>
</ContentTemplate>
</asp:UpdatePanel>
- При первом нажатии кнопки «Подтвердить» код работает нормально.
- При втором запуске я получаю следующую ошибку:
Ошибка среды выполнения Microsoft JScript: Sys.WebForms.Исключение PageRequestManagerServerErrorException: недопустимый аргумент обратной отправки или callback. Проверка события включена с помощью в конфигурации или <%@ Page EnableEventValidation=»true» %> на странице. В целях безопасности эта функция проверяет, что аргументы для событий обратной отправки или обратного вызова исходят от серверного элемента управления, который первоначально их отобразил. Если данные действительны и ожидаемы, используйте ClientScriptManager.Метод RegisterForEventValidation для регистрации данных обратной отправки или callback для проверки.
Кто-нибудь может объяснить, почему это происходит, потому что приведенное выше сообщение об ошибке не более чем на 100% сбивает с толку???
Я ничего не делал с ClientScriptManager.RegisterForEventValidation
методом.
Ответ №1:
Попробуйте поместить любую функцию / привязку, указанную вами в page_load
событии, внутрь
if(!IsPostback)
{
}
Это может помочь.
Ответ №2:
Действительно, я загружал данные в Page_Load
метод, но что было странным, так это то, что при нажатии на сетку, в которой отображалась ошибка выполнения командной строки javascript. Решение заключалось в
(! IsPostBack)
{
/ / loadData
}
Ответ №3:
Хотите верьте, хотите нет, но мне потребовалось полдня, чтобы найти причину этой ошибки. Итак, может быть, кто-нибудь может дать мне разумное объяснение того, как эти два связаны?
Где-то в коде во время события загрузки страницы я настраивал элемент управления DropDownList, добавляя в него элементы следующим образом:
DropDownList1.Items.Add(new ListItem("Name", "Value"));
Это aspx-код для этого:
<asp:DropDownList ID="DropDownList1" runat="server" EnableViewState="false"></asp:DropDownList>
Итак, если я удалю EnableViewState=»false» из тега выше, сообщение об ошибке, которое находится в совершенно не связанной области (т. Е. UpdatePanel), исчезнет.
Есть идеи, как два связаны????