【问题标题】:Asp.Net ListBox and JQueryAsp.Net ListBox 和 JQuery
【发布时间】:2009-03-13 18:12:11
【问题描述】:

我们有一个页面,其中包含一个禁用的 ListBox(在代码隐藏中)。这个 ListBox 可以通过选中页面上的复选框来启用;它通过使用 JQuery 的 javascript 重新启用。

所以,问题是当控件第一次在页面上被禁用然后重新启用时,即使选中了一个,它也没有选中的项目。

如果 ListBox 从未在代码隐藏中禁用,则相同的代码可以正常工作。

有没有办法使用 JQuery 重新启用 ListBox,以便将选定的值发布到服务器?


这是一个使用 VS 2005 且没有 .NET MVC 的 .net 2.0 项目

【问题讨论】:

    标签: asp.net jquery listbox


    【解决方案1】:

    您需要想出一个解决方案,让 ListBox 始终在服务器端启用且可见。所以一个 jQuery-only 解决方案来禁用select。我会添加一个隐藏字段,让它存储一个开关是否应该启用select。这将允许您的 jQuery 代码向服务器报告在回发时控件是否已启用。

    您显然必须编写 jQuery 代码来绑定隐藏字段并选择在一起并管理禁用/启用状态。

    编辑:现在我想起来了。您可以从Request.Form 集合中获取选择的值,并在Page_Init 期间将该值分配给您的ListBox。您将丢失任何 ListBox.*Changed 事件。

    【讨论】:

    • 我想到了这个,我们有办法知道它是应该启用还是禁用(复选框状态),但唯一的问题是这也都在更新面板内,所以很难禁用准备好文档,因为它总是被重写。
    • 啊,我怕我对UpdatePanels不熟悉。但我编辑添加了另一种方法
    【解决方案2】:

    解决此问题的方法可能是通过 Request.Form[listbox.ClientID] 获取回发值。它不像使用 ViewState 那样“好”,但它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多