Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Net列表框和JQuery_Asp.net_Jquery_Listbox - Fatal编程技术网

Asp.net Net列表框和JQuery

Asp.net Net列表框和JQuery,asp.net,jquery,listbox,Asp.net,Jquery,Listbox,我们有一个页面,其中包含一个禁用的列表框(在codebehind中)。通过选中页面上的复选框,可以启用此列表框;它使用JQuery通过javascript重新启用 因此,问题在于,当控件在页面上首先禁用然后重新启用时,即使选择了一个项目,它也没有选定的项目 如果列表框从未在codebehind中被禁用,那么同样的代码也可以正常工作 是否有任何方法可以使用JQuery重新启用ListBox,以便将选定的值发布到服务器 这是一个使用VS 2005的.net 2.0项目,没有.net MVC。您需要

我们有一个页面,其中包含一个禁用的列表框(在codebehind中)。通过选中页面上的复选框,可以启用此列表框;它使用JQuery通过javascript重新启用

因此,问题在于,当控件在页面上首先禁用然后重新启用时,即使选择了一个项目,它也没有选定的项目

如果列表框从未在codebehind中被禁用,那么同样的代码也可以正常工作

是否有任何方法可以使用JQuery重新启用ListBox,以便将选定的值发布到服务器



这是一个使用VS 2005的.net 2.0项目,没有.net MVC。您需要提出一个解决方案,其中列表框始终处于服务器端启用状态且可见。因此,只有jQuery才能禁用
select
。我会添加一个隐藏字段,让它存储一个开关,以决定是否应该启用
select
。这将允许jQuery代码向服务器报告在回发时是否启用了控件

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


编辑:现在我想起来了。您可以从
请求.Form
集合中获取select的值,并在
页面初始化期间将该值分配给您的
列表框
。您将丢失任何
列表框。*更改的
事件。

解决方法可能是通过Request.Form[ListBox.ClientID]在回发时获取值。它不像使用ViewState那么“好”,但它应该可以工作。

我想到了这一点,我们有办法知道它应该被启用还是被禁用(复选框状态),但唯一的问题是这一切都在更新面板中,所以很难在文档就绪时禁用,因为它总是被重写。啊哈,恐怕我不熟悉UpdatePanel。但我编辑添加了另一种方法