2013-04-05 19 views
12

Ich habe zwei TextBox und zwei Buttons in meiner Seite.von cs Seite?

Man ist versteckt und die andere angezeigt wird.

Wenn ich auf Button1 klicke, werden die Daten der beiden TextBox gespeichert und jede TextBox wird durch die RequiredFieldValidator validiert.

Dann, wenn ich auf Button2 klicke, wird es sich selbst verstecken (Button2) und wird die versteckte TextBox anzeigen.

Beide TextBox hat RequiredFieldValidator Validierung gegen Button1 's Ereignis klicken.

Jetzt ist mein Problem, wenn ich einfach Text in die erste Textfeld ein und klicken Sie auf speichern, wird die Schaltfläche klicken Sie das gewünschte Feld für verstecktes Feld zu validieren. Ich möchte nur die 2 Textbox validieren, wenn es angezeigt wird.

Wie kann ich dies vermeiden?

+0

ControlToValidate Eigenschaft ist es, zu der der Code Control zu validieren oder senden wir u helfen. –

+0

Können Sie einige Ihrer Codes angeben? – lexeRoy

Antwort

25

Nun können Sie einfach nutzt die Enabled="false" Eigenschaft RequiredFieldValidator.

Ihre markup würde basierend auf Ihrer Frage in etwa so aussehen.

<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" /> 

Und Ihre codebehind wie folgt aus:

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

Es half Mann danke –

+0

Danke für Hinweis auf 'ValidationGroup' zu mir. –

+0

Hat mir auch geholfen. Vielen Dank! –

4

Verwenden Sie die ValidationGroup="group"-Eigenschaft zu button und weisen Sie dem Text, den Sie validieren möchten, eine Validierungsgruppe zu. Hoffe, es

2

helfen Sie CausesValidation="false" für die sekundäre Taste angeben, diese weniger ausführlich ist und potenziell verwirrend, wenn die Überprüfung Gruppen A) übermäßig für ein einzelnes Feld und B) Sie Validierungsgruppen zu erhalten, wenn weitere Kontrollen Zugabe (tun wir es auf der Schaltfläche setzen, den Validator, das Feld und die Zusammenfassung Validierung? es ist nicht viel, um den Standard des erinnern, aber weniger praktisch, wenn die Bearbeitung.

+0

Ich habe die CausesValidation = "false", aber es funktioniert nicht –

1

Dies ist 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> 

Dieser Code hinter ist:

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

dies versuchen ..... ..

Verwandte Themen