Webforms: submitdisabledcontrols = true оставляет некоторые элементы управления отключенными - PullRequest
0 голосов
/ 26 апреля 2018

Итак, я немного работаю над этой проблемой и не могу найти какой-либо выход.Я пробовал кое-что, но пока ничего не получалось ...

Проблема:

Проще говоря, проблема в том, что когда мы играем с элементами управления формы, которая имеет submitdisabledcontrols = "true ", похоже, существует какой-то автоматически сгенерированный javascript WebForms, который обновляет (через некоторое время) пользовательский интерфейс и сохраняет некоторые поля отключенными, даже если пользователь их только включил.

Это происходит с 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», мы получаем от этого состояния до этого состояния .

проблема затем появляется через несколько секунд (но не каждый раз), и я вижу, что флажки мерцают, как если бы что-то обновлялось на регулярной основе.

Расследования:

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 ()", который играет с отключенными свойствами элементов управления внутри иЯ, кажется, не контролирую это (генерируется автоматически).

И это довольно далеко, насколько я мог бы пойти ...

Кто-нибудь когда-либо испытывал это?У вас есть какие-нибудь идеи или вам нужно еще что-нибудь, что я имею на моей стороне?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...