2013-04-05 10 views
12

Mam dwa pola tekstowe i dwa przyciski na mojej stronie.Włącz/wyłącz Wymagany walidator pól ze strony cs?

Jedna jest ukryta, a druga jest wyświetlana.

Po kliknięciu na Button1 zapisze dane dwóch TextBox i sprawdzi wszystkie pola tekstowe przez RequiredFieldValidator.

Po kliknięciu przycisku Button2 po prostu się ukryje (Button2) i pokaże ukryty TextBox.

Zarówno TextBox ma RequiredFieldValidator zatwierdzania przed kliknięciem zdarzenia Button1.

Teraz mój problem polega na tym, że po prostu wpisuję tekst do 1. pola tekstowego i klikam przycisk Zapisz, kliknięcie przycisku sprawdza poprawność pola dla ukrytego pola. Chcę tylko sprawdzić poprawność 2 pola tekstowego, gdy jest wyświetlany.

Jak mogę tego uniknąć?

+0

Właściwość ControlToValidate jest dostępna do sprawdzenia poprawności kontroli lub wysłania kodu, który pomożemy. –

+0

Czy możesz podać niektóre swoje kody? – lexeRoy

Odpowiedz

25

Cóż można proste użycie własnością RequiredFieldValidatorEnabled="false".

Twoja markup będzie wyglądał mniej więcej tak, jak na twoje pytanie.

<asp:TextBox runat="server" ID="tb1"></asp:TextBox> 
<asp:RequiredFieldValidator runat="server" ID="rfv1" ControlToValidate="tb1" ErrorMessage="*" ValidationGroup="gvSave"> 
</asp:RequiredFieldValidator> 

<asp:TextBox runat="server" ID="tb2" Visible="false"></asp:TextBox> 
<asp:RequiredFieldValidator runat="server" ID="rfv2" ControlToValidate="tb2" ErrorMessage="*" Enabled="false" ValidationGroup="gvSave"> 
</asp:RequiredFieldValidator> 

<asp:Button runat="server" ID="btn1" Text="Save" onclick="btn1_Click" ValidationGroup="gvSave"/> 
<asp:Button runat="server" ID="btn2" Text="Show" onclick="btn2_Click" /> 

i twoi codebehind tak:

protected void btn2_Click(object sender, EventArgs e) 
{ 
    tb2.Visible = true; 
    rfv2.Enabled = true; // Enables the second requiredfieldvalidator 
} 

protected void btn1_Click(object sender, EventArgs e) 
{ 
    // your Saving code here 
} 
+2

Pomogło człowiekowi dzięki –

+0

Dzięki za podpowiedź dla 'ValidationGroup'. –

+0

Pomógł mi też. Dzięki! –

4

użyj właściwości ValidationGroup="group" do button i przypisz grupę sprawdzania poprawności do tekstu, którego poprawność chcesz sprawdzić. nadzieję, że pomoże

2

Można określić CausesValidation="false" dla przycisku wtórnym, jest to mniej gadatliwy i potencjalnie mylące gdy grupy walidacji A) nadmierne dla jednego pola i B) trzeba utrzymać grupy sprawdzania poprawności podczas dodawania kolejnych kontroli (mamy umieścić go na przycisk, walidator, pola i podsumowanie walidacji? To nie jest dużo Zapamiętaj standard, ale mniej praktyczne podczas edycji.

+0

Zrobiłem the CausesValidation = "false" ale nie działa –

1

To Aspx:

    <td align="right"> 
          Cut Type : 
         </td> 
         <td class="required"> 
          <telerik:RadComboBox ID="cmbCutType" runat="server" MaxHeight="200px" Width="200px" 
           Filter="Contains" EnableLoadOnDemand="true" EmptyMessage="Select Cut Type" OnSelectedIndexChanged="cmbCutType_SelectedIndexChanged" 
           AutoPostBack="true"> 
          </telerik:RadComboBox> 
          <asp:RequiredFieldValidator runat="server" ID="rfvCutType" Display="None" ControlToValidate="cmbCutType" InitialValue="" 
           ValidationGroup="Save" ErrorMessage="Cut Type is Mandatory" 
           ForeColor="Red"></asp:RequiredFieldValidator> 
          <ajaxToolkit:ValidatorCalloutExtender ID="vceCutType" TargetControlID="rfvCutType" 
           runat="server"> 
          </ajaxToolkit:ValidatorCalloutExtender> 
         </td> 

Jest to kod za:

protected void btn2_Click(object sender, EventArgs e) 
{ 
    rfvCutType.IsValid = false; 
} 

spróbować ..... ..

Powiązane problemy