在客户端C#/ ASP.NET的DropDownList上添加一个项目

时间:2013-04-16 13:30:25

标签: c# asp.net postback

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

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

  

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

我如何正确修改DropDownList,因此新条目都出现在列表中如果我选择了该新项目进行回发,它的值将转到服务器并进一步使用?

2 个答案:

答案 0 :(得分:2)

您应该使用ASP UpdatePanel,否则您将无法控制与ViewState所说的不同。

答案 1 :(得分:1)

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

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

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

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