Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.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
C# 当我在Javascript中禁用ASP.NET组合框时,它的值似乎发生了变化_C#_Javascript_Asp.net_Combobox - Fatal编程技术网

C# 当我在Javascript中禁用ASP.NET组合框时,它的值似乎发生了变化

C# 当我在Javascript中禁用ASP.NET组合框时,它的值似乎发生了变化,c#,javascript,asp.net,combobox,C#,Javascript,Asp.net,Combobox,我有一个表单,用户可以从一个组合框中选择一个组件类型,根据该组件的不同,他们可以从另一个组合框中选择数据类型,也可以不选择 当用户选择一个组件类型时,客户端javascript会触发更改,并在需要时设置数据类型组合框的值,在需要时禁用数据类型组合框。奇怪的是:当表单提交时,服务器端会得到数据类型组合框的值,而不是我设置的值 我似乎把它缩小到了一行javascript: document.all("cmbDataType").disabled = true; 如果该行被注释掉,它仍然会根据组件类

我有一个表单,用户可以从一个组合框中选择一个组件类型,根据该组件的不同,他们可以从另一个组合框中选择数据类型,也可以不选择

当用户选择一个组件类型时,客户端javascript会触发更改,并在需要时设置数据类型组合框的值,在需要时禁用数据类型组合框。奇怪的是:当表单提交时,服务器端会得到数据类型组合框的值,而不是我设置的值

我似乎把它缩小到了一行javascript:

document.all("cmbDataType").disabled = true;
如果该行被注释掉,它仍然会根据组件类型设置为正确的值,但不会被禁用,并且表单提交会根据客户端选择的值向服务器提供正确的值

如果执行该行,则尽管用户在禁用的组合框中看到了正确的值,但返回到服务器的值是不正确的


我还没有找到其他人有同样的问题,所以我希望这不是什么超级奇怪的事情。浏览器是IE7,webapp是ASP.NET 2.0。谢谢你的关注

发生这种情况的原因是ASP.NET 2.0默认情况下不提交禁用控件的值。(更准确地说,它不会更新回发上的服务器控件值。)您可以通过在Page_Load事件中放置以下行来覆盖该值:

Page.Form.SubmitDisabledControls = true;
也可以在表单标记中设置值:

<form id="myForm" runat="server" SubmitDisabledControls="true">

非常感谢!我从来都不知道那个花边新闻,设置表单标签值就可以立即修复它!