在我做了一些ajax调用之后,我需要在DropDownList客户端添加一个项目。
如果我只是使用jquery的方法将项目添加到相关的select中,那么它会被添加到那里,但是当我稍后在下拉列表中选择这个新的(客户端添加的)项目并进行回发时,会出现问题:
无效的回发或回调参数。使用配置或<%@启用事件验证 Page EnableEventValidation =“true”%>在一个页面中。为了安全 目的,此功能验证回发或回调的参数 事件源自最初呈现的服务器控件 他们。如果数据有效且预期,请使用 ClientScriptManager.RegisterForEventValidation方法 注册回发或回调数据以进行验证。
我如何正确修改DropDownList,因此新条目都出现在列表中如果我选择了该新项目进行回发,它的值将转到服务器并进一步使用?
答案 0 :(得分:2)
您应该使用ASP UpdatePanel,否则您将无法控制与ViewState所说的不同。
答案 1 :(得分:1)
我可以建议两种不同的策略。
将任何新项添加到下拉列表服务器端,通过PostBack调用服务器上的方法,将新项添加到列表绑定的DataSet中,然后重新绑定下拉列表列表
绕过ViewState并从提交回服务器的帖子值直接从下拉列表中获取所选值,如下所示。在这种情况下,您不需要“往返”并添加新项目服务器端。
selectedValue = Request.Form [ - 下拉列表ID - ]。ToString();