Как показать / скрыть сообщения об ошибках на нескольких элементах проверки ASP.NET? - PullRequest
1 голос
/ 18 ноября 2011

При наличии элемента проверки ASP.NET запуск отображения и скрытия сообщения об ошибке касается только этого конкретного элемента проверки. Это означает, что если этот элемент управления не работает, отображается только сообщение об ошибке.

Но у меня есть два выпадающих списка, которые должны следовать за сообщениями об ошибках друг друга. Они действительны, только если оба имеют значение или не имеют значения вообще.

Это мой код:

<script type="text/javascript" language="javascript">    
    function ValidateDDL(source, args) {
            var ddl_1 = $get('<%= DropDownList1.ClientID %>');
            var ddl_2 = $get('<%= DropDownList2.ClientID %>');
            var value_1 = ddl_1.options[ddlMailValue.selectedIndex].value;
            var value_2 = ddl_1.options[ddlMailValue.selectedIndex].value;

            if ((value_1== "" && value_2 != "") || (value_1 != "" && value_2 == "")) {
                    args.IsValid = false;
            }
            else {
                    args.IsValid = true;
            }
    }
</script>

<asp:DropDownList ID="DropDownList1" runat="server" CausesValidation="true"></asp:DropDownList>
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="DropDownList1" ValidateEmptyText="true" ClientValidationFunction="ValidateDDL" ></asp:CustomValidator>

<asp:DropDownList ID="DropDownList2" runat="server" CausesValidation="true"></asp:DropDownList>
<asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="DropDownList2" ValidateEmptyText="true" ClientValidationFunction="ValidateDDL" ></asp:CustomValidator>

Но это означает, что когда я изменяю первый выпадающий список (не имея значения, которого нет), он проверяет «ложь», потому что у второго выпадающего списка еще нет значения. Но когда я изменяю второй выпадающий список, чтобы он также содержал значение, первое сообщение об ошибке все еще отображается, потому что этот элемент управления не проверен. Конечно, это имеет только визуальное значение, потому что элементы управления будут проверять «true», когда я пытаюсь сохранить.

Но все же ... Есть ли способ заполучить первый элемент проверки и установить для идентичного состояния то же состояние, что и для второго (и наоборот)?

1 Ответ

0 голосов
/ 18 ноября 2011

Вы думали только о том, чтобы иметь только триггер валидатора только для сохранения?Вместо того чтобы вызывать их, как только вы вводите значения, вы можете просто удерживать их до тех пор, пока сохранение не произойдет.Просто назначьте ValidationGroup как вашим валидаторам, так и кнопке сохранения, и только он будет подтвержден при сохранении.

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