0

在我进行了一些 ajax 调用之后,我需要向 DropDownList 客户端添加一个项目。

如果我只是使用jquery的方法将项目添加到相关选择中,它会添加到那里,但是当我稍后在下拉列表中选择这个新的(客户端添加的)项目并进行回发时,就会出现问题:

无效的回发或回调参数。使用配置或页面中的 <%@ Page EnableEventValidation="true" %> 启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用 ClientScriptManager.RegisterForEventValidation 方法注册回发或回调数据以进行验证。

我将如何正确修改 DropDownList,以便新条目都出现在列表中,并且如果我在选择该新项目的情况下进行回发,其值将转到服务器并进一步使用?

4

2 回答 2

2

我可以建议两种不同的策略。

  1. 将任何新项目添加到下拉列表服务器端,通过 PostBack 在服务器上调用方法以将新项目添加到列表绑定的 DataSet,然后重新绑定下拉列表。

  2. 绕过 ViewState 并直接从提交回服务器的帖子值中获取下拉列表中的选定值,如下所示。在这种情况下,您不需要“往返”并添加新项目服务器端。

    selectedValue = Request.Form[ - 下拉列表 id -].ToString();

于 2013-04-16T13:39:58.053 回答
2

您应该使用 ASP UpdatePanel,否则您一定会遇到控件与 ViewState 所告诉的不同的问题。

于 2013-04-16T13:32:31.180 回答