Нет сообщения об ошибке для пользовательского валидатора - PullRequest
2 голосов
/ 04 ноября 2010

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

Чего мне не хватает?Я пробовал с и без ValidationSummary.

Спасибо!

<asp:CustomValidator ID="CustomValidator1" OnServerValidate="validatePhone" EnableClientScript="false" runat="server" ErrorMessage="Home or Cell Phone is Required" ></asp:CustomValidator>

<asp:ValidationSummary ID="ValidationSummary1" DisplayMode="BulletList"  runat="server" ForeColor="Red" Font-Size="X-Small" Font-Bold="true" />


protected void validatePhone(object sender, ServerValidateEventArgs e)
    {
        e.IsValid = string.IsNullOrEmpty(txtCellPhone.Text) && string.IsNullOrEmpty(txtHomePhone.Text) ? false : true;
    }

Ответы [ 3 ]

1 голос
/ 04 ноября 2010

Оформить эту статью . В основном вам нужно подключить проверку на стороне клиента. Добавьте следующее непосредственно перед закрывающим тегом формы, меняя имена элементов управления по мере необходимости:

<%-- This configures the validator to automatically--%> 
<%-- update when either of these controls is changed --%>
<script type="text/javascript">
   <!--
      ValidatorHookupControlID("<%= MyControl1.ClientID %>", 
      document.getElementById["<%= CustomValidator1.ClientID %>"]);
      ValidatorHookupControlID("<%= MyControl2.ClientID %>", 
      document.getElementById["<%= CustomValidator1.ClientID %>"]);
   //-->
</script>

В качестве альтернативы используйте этот элемент управления

1 голос
/ 04 ноября 2010

Проблема была полностью по моей вине.На моей кнопке отправки последнее, что я делаю, это Response.Redirect.Сообщение появлялось, но затем была представлена ​​страница «Спасибо».Теперь делать только Response.Redirect, если customvalidator возвращает true.

1 голос
/ 04 ноября 2010

Вы должны установить ControlToValidate для некоторого TextBox.

<asp:CustomValidator ID="CustomValidator1" OnServerValidate="validatePhone" EnabEnableClientScript="false" runat="server" ErrorMessage="Home or Cell Phone is Required" ControlToValidate="txtHomePhone"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...