所以,我正在研究这个问题,因为我找不到任何方法。我尝试过一些东西,但迄今为止都没有工作......
简单来说,问题是当我们使用 submitdisabledcontrols =“true”的表单控件时,似乎有一些WebForms自动生成的javascript刷新(一段时间后) )即使用户刚刚启用了UI,也会禁用某些字段。
这种情况发生在Webforms(.NET 4.5.2,但在以前版本的.NET上似乎是正确的)。
Chrome和Firefox都很好。
这正是我在母版页中的形式(因此所有页面都将使用它)
<form id="form1" runat="server" submitdisabledcontrols="true">
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"/>
</div>
</form>
以下是我们在其中一个页面中提取的内容的摘录(我为您清理了一下,因此您对旧式CSS标签格式不感到恼火):
<asp:RadioButton ID="RB_foo" onclick="setEnabled();" runat="server" EnableViewState="False" GroupName="Action"></asp:RadioButton>
<asp:RadioButton ID="RB_bar" onclick="setEnabled();" runat="server" CssClass="control_checkbox" EnableViewState="False" GroupName="Action"></asp:RadioButton>
<asp:RadioButton ID="RB_parentopt" onclick="setEnabled();" runat="server" CssClass="control_checkbox" EnableViewState="False" GroupName="Action"></asp:RadioButton>
<asp:CheckBox ID="chkboxwithchildren" runat="server" CssClass="control_checkbox" onclick="setEnabled();" />
<asp:RadioButton ID="RB_opt1" onclick="setEnabled();" runat="server" CssClass="control_checkbox" EnableViewState="False" GroupName="Deliver"></asp:RadioButton>
<asp:RadioButton ID="RB_opt2" onclick="setEnabled();" runat="server" CssClass="control_checkbox" EnableViewState="False" GroupName="Deliver"></asp:RadioButton>
的setEnabled();控制每个输入的状态根据启用或不启用子项的规则,当且仅当父启用时才启用。这不是问题,因为当我们点击“parentopt”时,我们从this state到this state。
The problem然后在几秒钟后出现(但不是每次都出现),我可以看到复选框闪烁,就像有些东西在常规基础上更新一样。
1-我可以发现改为submitdisabledcontrols =“false”摆脱它,但在提交时仍然需要禁用控件...
2-深入了解ASP对我的影响。我可以看到它在iframe中创建一个表单,如下所示:
<form id="aspnetForm" onsubmit="javascript:return WebForm_OnSubmit();" action="./ASKeywordChecking.aspx" enctype="multipart/form-data" method="post">
这个“WebForm_OnSubmit()”调用“WebForm_ReEnableControls()”,它在内部播放控件的禁用属性,我似乎无法控制它(自动生成)。
这就是我可以去的......
有没有人经历过这个?你有什么想法或者我需要的更多信息吗?