it-swarm.com.de

Aktivieren/Deaktivieren Erforderlicher Feldprüfer auf der CS-Seite

Ich habe zwei TextBoxen und zwei Buttons auf meiner Seite.

Einer ist ausgeblendet und der andere wird angezeigt.

Wenn ich auf Button1 klicke, werden die Daten der beiden TextBox gespeichert und die einzelnen TextBoxen anhand der RequiredFieldValidator überprüft.

Wenn ich dann auf Button2 klicke, wird es sich einfach verstecken (Button2) und die verborgene TextBox anzeigen.

Beide TextBox haben RequiredFieldValidator gegen den Ereignisklick von Button1 validiert.

Jetzt ist mein Problem, wenn ich einfach Text in die 1. TextBox eingebe und auf "Speichern" klicke. Durch Klicken auf die Schaltfläche wird das erforderliche Feld für das ausgeblendete Feld bestätigt. Ich möchte nur die 2 Textbox überprüfen, wenn sie angezeigt wird.

Wie kann ich das vermeiden?

12
Rahul Chowdhury

Nun können Sie einfach die Enabled="false"-Eigenschaft von RequiredFieldValidator verwenden.

Ihre markup würde auf Grundlage 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 deine codebehind so:

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
}
28
Praveen Nambiar

verwenden Sie die ValidationGroup="group"-Eigenschaft für button und weisen Sie dem Text eine Validierungsgruppe zu, für die Sie die Validierung durchführen möchten ..__

4

Sie können CausesValidation="false" für die sekundäre Schaltfläche angeben. Dies ist weniger ausführlich und möglicherweise verwirrend, wenn die Validierungsgruppen A) für ein einzelnes Feld übermäßig groß sind und B) Sie Validierungsgruppen verwalten müssen, wenn Sie weitere Steuerelemente hinzufügen Validator, das Feld und die Validierungszusammenfassung? Es ist nicht viel an den Standard zu erinnern, aber weniger praktisch beim Editieren.

2
Grant Thomas

Das 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>

Dies ist Code hinter:

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

versuche dies.......

1
Chetan Sanghani