【发布时间】:2012-10-29 07:33:55
【问题描述】:
任何将 jQuery 与 .NET Web 应用程序一起使用的人很可能会遇到问题,即通过 jQuery 在客户端上所做的更改在回发期间不一定会持续到 Web 服务器(因为视图状态、安全性等) .
我的场景: 我有一个带有两个不同 ASP.NET 下拉列表的 GridView。其中一个下拉列表在 page_load 期间填充,而另一个则留空。留空的内容是这样填充的:当用户在第一个下拉列表中选择一个项目时,它会触发一个事件,该事件使用 jQuery ajax 从 Web 服务器检索数据,然后将该数据返回给客户端并填充到第二个下拉菜单。这一切都是基本的,并且易于启动。我喜欢它。
但是,我不喜欢的是,当用户在第二个下拉列表中选择一个项目(在它被 jQuery ajax 调用填充之后)并单击“保存”按钮(这会导致回发)然后下拉选择在服务器端为空(这实际上意味着服务器不知道下拉列表中有项目或用户在其中选择了项目)。显然,这与视图状态中的下拉列表为空这一事实有关,我完全理解这背后的原因,但尝试将 jQuery 与 .NET 混合使用让我非常沮丧。
所以我的问题是:如何使用 jquery 填充 ASP.NET 下拉列表并通过回发保持其中的项目?
感谢您的帮助!
【问题讨论】:
-
如果您只需要选定的值,那么无论 ASP.NET 管道是否能够重新创建由客户端动态填充的控件的子项,它都可以访问Request.Form KVP 集合中的表单变量。如果客户端需要重新加载页面,问题就会出现。在这种情况下,可以使用 Christophe 的回答来促进这一点。
标签: jquery asp.net ajax webforms postback