/ / RequiredFieldValidator nie uruchamia się - c #, asp.net, sprawdzanie poprawności, requiredfieldvalidator

RequiredFieldValidator nie uruchamia się - c #, asp.net, sprawdzanie poprawności, requiredfieldvalidator

Mam prosty formularz z wymaganym Validatorem napole tekstowe. Kiedy zostawiam pusty pole tekstowe i sprawdzam stronę Page.isValid, zawsze jest to prawda. Nie mogę zrozumieć, co robię źle, aby strona zawsze była prawdziwa.

<asp:TextBox ID="txtVendorTracking" runat="server" Width="150px"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvTxtVendorTracking"
InitialValue="Enter Vendor Tracking Nbr" runat="server"
ErrorMessage="Vendor Tracking Required." ControlToValidate="txtVendorTracking"
ValidationGroup="val" Display="Dynamic">*</asp:RequiredFieldValidator>

<asp:Button ID="btnSave" runat="server" Text="Save" Width="100px"  onclick="btnSave_Click" ValidationGroup="val"/>

protected void btnSave_Click(object sender, EventArgs e)
{
Page.Validate(MasterValidation.ValidationGroup);
if (!Page.IsValid)
{
ModalPopupExtender3.Show();
txtRONbr.Focus();
return;
}
}

Odpowiedzi:

0 dla odpowiedzi № 1

Ponieważ początkowy stan pola tekstowego jest pusty, problem jest tutaj:

InitialValue="Enter Vendor Tracking Nbr"

Za MSDN:

Sprawdzanie poprawności nie powiedzie się tylko wtedy, gdy wartość skojarzonego sterowania wejściowego dopasowuje wartość InitialValue po utracie fokusa.

Ponieważ początkowa wartość walidatora nie jestpusty łańcuch, traktuje pusty ciąg jako prawidłowe dane wejściowe. Aby rozwiązać problem, musisz zdecydować, jaki powinien być początkowy stan twojego pola tekstowego, i odpowiednio skonfigurować walidator. Na przykład teraz powinieneś po prostu usunąć InitialValue ze znaczników - to defauls do String.Empty.