Недопустимый аргумент обратной передачи или обратного вызова в пользовательском элементе управления
Это ошибка:
Invalid postback or callback argument. Event validation is enabled using
<pages enableEventValidation="true"/> in configuration or
<%@ Page EnableEventValidation="true" %> in a page. For security purposes,
this feature verifies that arguments to postback or callback events originate
from the server control that originally rendered them.
If the data is valid and expected, use the
ClientScriptManager.RegisterForEventValidation
method in order to register the postback or callback data for validation.
И вот что я делаю:
ASPX:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
myUserControl.DataBind();
}
}
UserControl:
public override void DataBind()
{
ddlContacts.DataSource = SessionHandler.Contacts;
ddlContacts.DataValueField = "Id";
ddlContacts.DataTextField = "Name";
ddlContacts.DataBind();
ddlOrderbillto.DataSource = SessionHandler.Contacts;
ddlOrderbillto.DataValueField = "Id";
ddlOrderbillto.DataTextField = "Name";
ddlOrderbillto.DataBind();
ddlState.DataSource = SessionHandler.FederalStates;
ddlState.DataTextField = "Name";
ddlState.DataValueField = "Id";
ddlState.DataBind();
if (Info.Id > 0)
{
//load info
}
}
Как видите, у меня есть 2 выпадающих списка, которые я загружаю ddlContacts
а также ddlOrderbillto
и все работало так, как должно было. Как только я добавил ddlState
внезапно я получаю ошибку, о которой упоминал выше. Я пытался поместить его в панель обновления и ничего. Если я прокомментирую ddlState
источник данных, привязка данных, тогда это работает, но, очевидно, я остался без состояний:(
Помогите, пожалуйста?
РЕДАКТИРОВАТЬ: у меня есть 2 других выпадающих списков "ddlCounties" и "ddlCity", которые при привязке данных к страницам они пустые, но после изменения "ddlState" они заполняются через jquery. Итак, из того, что я прочитал, это то, что, поскольку они не загружены изначально, это может быть ошибкой?
1 ответ
Изменить EnableEventValidation="ложь" в верхней части страницы..!! чтобы это работало.. но это не хороший метод..!!
Если для свойства EnableEventValidation установлено значение true, ASP.NET проверяет, что событие элемента управления возникло из пользовательского интерфейса, который был представлен этим элементом управления. Элемент управления регистрирует свои события во время рендеринга, а затем проверяет события во время обратной передачи или обработки обратного вызова. Например, если элемент управления списком включает параметры с номерами 1, 2 или 3 при отображении страницы, и если получен запрос обратной передачи, указывающий параметр 4, ASP.NET вызывает исключение. Все управляемые событиями элементы управления в ASP.NET используют эту функцию по умолчанию. Если вы пишете клиентский скрипт, который изменяет элемент управления на клиенте во время выполнения, вам, возможно, придется использовать метод RegisterForEventValidation, чтобы избежать ложных ошибок проверки события.