J'ai deux TextBox et deux boutons dans ma page.
L'un est caché et l'autre est affiché.
Lorsque je clique sur le Button1
, il enregistre les données des deux TextBox
et valide chaque TextBox par le RequiredFieldValidator
.
Ensuite, lorsque je clique sur Button2
, il se cache (Button2
) et affiche la variable TextBox
masquée.
TextBox
a RequiredFieldValidator
une valeur de validation en fonction du clic sur l'événement de Button1
.
Maintenant, le problème est que je saisis simplement du texte dans la 1ère zone de texte et que je clique sur Enregistrer. Le clic sur le bouton valide le champ requis pour le champ masqué. Je veux juste valider la zone de texte 2 quand il est affiché.
Comment puis-je éviter ça?
Vous pouvez simplement utiliser la propriété Enabled="false"
de RequiredFieldValidator
.
Votre markup
ressemblerait à quelque chose comme ceci en fonction de votre question.
<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" />
Et votre codebehind
comme ceci:
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
}
utilisez la propriété ValidationGroup="group"
sur button
et affectez le groupe de validation au texte sur lequel vous souhaitez valider . J'espère que cela vous aidera
Vous pouvez spécifier CausesValidation="false"
pour le bouton secondaire. Cela est moins détaillé et peut prêter à confusion lorsque les groupes de validation sont A) excessifs pour un seul champ et B) vous devez conserver des groupes de validation lors de l’ajout de contrôles supplémentaires validateur, le champ et le résumé de validation? Ce n’est pas beaucoup le souvenir de la norme, mais moins pratique lors de l’édition.
C'est 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>
C'est le code derrière:
protected void btn2_Click(object sender, EventArgs e)
{
rfvCutType.IsValid = false;
}
essaye ça.......