这是错误:
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();
}
}
用户控制:
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 填充。所以从我读到的是,因为它们最初没有加载,所以这可能是错误?