как сделать так, чтобы отображалось сообщение об ошибке fieldfieldvalidator после нажатия кнопки «Отправить» - PullRequest
6 голосов
/ 18 мая 2010

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

Ответы [ 6 ]

8 голосов
/ 18 мая 2010

Это невозможно, если ClientScript включен для ваших валидаторов.И ClientScript по умолчанию включен для ваших валидаторов.Вы должны отключить это, установив EnableClientScript для False в вашем источнике.

Теперь в обработчике события вашей кнопки отправки вызовите Page.Validate () и Page.IsValid, чтобы увидеть, прошли ли все валидаторы тест.1003 *

Пример:

<asp:RequiredFieldValidator ID="rfvFirstName" runat="server" ControlToValidate="txtFirstName" EnableClientScript="false" Display="Dynamic" SetFocusOnError="true" />

Page.Validate();
if (!Page.IsValid)
{
     //show a message or throw an exception
}
4 голосов
/ 18 мая 2010

Использовать контрольный итог проверки где-нибудь на вашей странице ...

<<code>asp:validationsummary id="valSummary" runat="server" headertext="Validation Errors:" cssclass="ValidationSummary" />

Затем для проверки:

* +1007 *

Удалите «*», если вы не хотите немедленной обратной связи ... сообщение об ошибке отображается в элементе управления <asp:validationsummary> при отправке формы.

1 голос
/ 14 июня 2012

Установите в свойстве валидатора forecolor цвет фона вашей страницы. Затем в onclientclick кнопки отправки измените свойство css color на нужный цвет:

<asp:CompareValidator ID="birthdaycheck" runat="server" ErrorMessage="" 
    Text="*Required" ControlToValidate="birthday" ValidationGroup="rfi" 
    Operator="NotEqual"  ForeColor="#F3F3E9"  />  


<asp:Button ID="btnFinish" runat="server" Text="Finish"
    CausesValidation="true" CommandName="MoveComplete" CssClass="navButton" 
    ValidationGroup="rfi" 
    OnClientClick="$('#wizard_birthdaycheck').css('color','red');" />
1 голос
/ 18 мая 2010

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

0 голосов
/ 07 ноября 2014

Попробуйте это для создания динамических переключателей вместе с необходимыми валидаторами поля ...

    TableRow trow4 = new TableRow();
    trow4.Style.Add("width", "100px");
    TableCell tcel4 = new TableCell();
    Label lb4 = new Label();
    lb4.Text = Resources.QcLabelName.Gender;
    tcel4.Controls.Add(lb4);
    CSSCell(tcel4);
    table.Rows.Add(trow4);
    RadioButtonList rblist = new RadioButtonList();
    rblist.ID = "rbtnmalendfemale";
    rblist.Items.Add("Male");
    rblist.Items.Add("Female");
    tcel4.Controls.Add(rblist);
    trow4.Cells.Add(tcel4);
    table.Rows.Add(trow4);
    rblist.Visible = true;
    RequiredFieldValidator rFV5 = new RequiredFieldValidator();
    TableCell tcl46 = new TableCell();
    rFV5.ControlToValidate = "rbtnmalendfemale";
    rFV5.ErrorMessage = "Gendor Selection Is Mandatory";
    rFV5.Style.Add("color", "Red");
    rFV5.ID = "Reqfield9";
    tcl46.Controls.Add(rFV5);
    trow4.Cells.Add(tcl46);
    table.Rows.Add(trow4);
    rFV5.Visible = true;
0 голосов
/ 31 августа 2012

Вы можете установить CausesValidation="False" для кнопки, для которой вы не хотите, чтобы проверка выполнялась.

<asp:Button ID="btnCancel" runat="server" Text="cancel" CausesValidation="False"
                            onclick="btnCancel_Click"/>
...