将jQuery与.NET Web应用程序一起使用的任何人都极有可能遇到这样的问题,即通过jQuery在客户端上所做的更改不一定在回发期间会持久化到Web服务器(由于视图状态,安全性等)。

我的情况:
我有一个带有两个不同ASP.NET下拉菜单的GridView。在page_load期间填充了一个下拉列表,而另一个则留空。留空的内容按以下方式填充:当用户在第一个下拉列表中选择一个项目时,它会触发一个事件,该事件使用jQuery ajax从Web服务器检索数据,然后将该数据返回给客户端并填充到第二个下拉菜单。这一切都很基本,并且易于启动。我喜欢它。

但是,我不喜欢的事实是,当用户在第二个下拉列表中选择一个项目时(在它被jQuery ajax调用填充后),然后单击“保存”按钮(这会导致回发),然后出现下拉列表在服务器端空了(这实际上意味着服务器不知道下拉列表中有项目,或者用户选择了其中的项目)。显然,这与viewstate中的下拉列表为空的事实有关,并且我完全意识到了背后的原因,但是让我很沮丧地尝试将jQuery与.NET混合使用。

所以我的问题是:如何使用jquery填充ASP.NET下拉列表,并使其中的项目通过回发持久化?

谢谢您的帮助!

最佳答案

我以前遇到过这个问题。解决方法是,在第二个下拉列表旁边放置一个HiddenField控件,并使用与第二个下拉列表相同的值填充该隐藏字段。
在后面的代码中,您可以像这样访问HiddenField值:

HiddenFieldID.Value


请注意,隐藏字段没有text属性,而是value属性。

07-24 09:50
查看更多