Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

.NET2 - UTILISATION DES VALIDATIONGROUP


Information sur la source



Description

Cliquez pour voir la capture en taille normale
En ASP.net1 nous avons déjà les controles de validation, cependant ils n'étaient pas toujours pratique, si nous avions 2 parties de formulaires à valider, il fallait que tous les controles de validation soient valide pour pouvoir envoyer la page.

Par exemple, si on avait sur la meme page, un UserControl de login et un UserControl de page Contact, il fallait que tous les champs soient remplis.

ASP.net 2 arrive avec une nouveauté : les validationGroup. Vous pouvez maintenant définir des régions à valider.

Pour plus de détail, regarder l'exemple.


Autre nouveauté, asp.net 2 permet de faire simplement des formulaires qui sont en respect avec les normes du W3C. En effet, le formulaire généré sera :

<fieldset>
    <legend>Identifiez vous</legend>

    <label for="Login1_TextBoxName" id="Login1_LabelName">Nom :</label>
    <input name="Login1$TextBoxName" type="text" id="Login1_TextBoxName" />
    <span id="Login1_RequiredFieldValidatorName" style="color:Red;display:none;">*</span><br />

    <label for="Login1_TextBoxPassword" id="Login1_LabelPassword">Password :</label>
    <input name="Login1$TextBoxPassword" type="password" id="Login1_TextBoxPassword" />
    <span id="Login1_RequiredFieldValidatorPassword" style="color:Red;display:none;">*</span>

</fieldset>

 

Source

  • 'Login.ascx :
  • '---------------------------------------------------------------------------------------
  • <%@ Control Language="VB" AutoEventWireup="false" CodeFile="Login.ascx.vb" Inherits="UC_Login" %>
  • <asp:Panel ID="PanelLogin" runat="server" GroupingText="Identifiez vous" DefaultButton="ButtonLoginValid" CssClass="Login">
  • <asp:Label ID="LabelName" runat="server" Text="Nom :" AssociatedControlID="TextBoxName"></asp:Label>
  • <asp:TextBox ID="TextBoxName" runat="server" ValidationGroup="Login"></asp:TextBox>
  • <asp:RequiredFieldValidator ID="RequiredFieldValidatorName" runat="server" ErrorMessage="*" ControlToValidate="TextBoxName" Display="Dynamic" SetFocusOnError="True" ValidationGroup="Login"></asp:RequiredFieldValidator><br />
  • <asp:Label ID="LabelPassword" runat="server" Text="Password :" AssociatedControlID="TextBoxPassword"></asp:Label>
  • <asp:TextBox ID="TextBoxPassword" runat="server" EnableViewState="False" TextMode="Password" ValidationGroup="Login"></asp:TextBox>
  • <asp:RequiredFieldValidator ID="RequiredFieldValidatorPassword" runat="server" ErrorMessage="*" ControlToValidate="TextBoxPassword" Display="Dynamic" SetFocusOnError="True" ValidationGroup="Login"></asp:RequiredFieldValidator><br />
  • <asp:Button ID="ButtonLoginValid" CssClass="Button" runat="server" Text="Valider" ValidationGroup="Login" /></asp:Panel>
  • <asp:Literal ID="LiteralResult" runat="server" EnableViewState="False"></asp:Literal>
  • 'Login.ascx.vb
  • '---------------------------------------------------------------------------------------
  • Partial Class UC_Login
  • Inherits System.Web.UI.UserControl
  • Protected Sub ButtonLoginValid_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonLoginValid.Click
  • Page.Validate("Login")
  • If Page.IsValid Then
  • 'Faudra bien sur vérifier tout ca dans une bdd etc ...
  • If TextBoxName.Text = "Cyril" AndAlso TextBoxPassword.Text = "toto" Then
  • Me.PanelLogin.Visible = False
  • Me.LiteralResult.Text = "Authentification réussie"
  • Else
  • Me.LiteralResult.Text = "Nom d'utilisateur ou mot de passe incorrect"
  • End If
  • End If
  • End Sub
  • End Class
  • 'le fichier CSS
  • '---------------------------------------------------------------------------------------
  • div.Login fieldset {width:290px;margin:auto;position:relative;}
  • div.Login fieldset label {text-align:right;width:70px;clear:left;display:block; float:left;margin:5px;}
  • div.Login fieldset input {width:170px;margin:5px;}
  • div.Login fieldset input.Button {margin-right:25px;float:right;width:70px;}
'Login.ascx :
'---------------------------------------------------------------------------------------

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="Login.ascx.vb" Inherits="UC_Login" %>
<asp:Panel ID="PanelLogin" runat="server" GroupingText="Identifiez vous" DefaultButton="ButtonLoginValid" CssClass="Login">
    <asp:Label ID="LabelName" runat="server" Text="Nom :" AssociatedControlID="TextBoxName"></asp:Label>
    <asp:TextBox ID="TextBoxName" runat="server" ValidationGroup="Login"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidatorName" runat="server" ErrorMessage="*" ControlToValidate="TextBoxName" Display="Dynamic" SetFocusOnError="True" ValidationGroup="Login"></asp:RequiredFieldValidator><br />
    <asp:Label ID="LabelPassword" runat="server" Text="Password :" AssociatedControlID="TextBoxPassword"></asp:Label>
    <asp:TextBox ID="TextBoxPassword" runat="server" EnableViewState="False" TextMode="Password" ValidationGroup="Login"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidatorPassword" runat="server" ErrorMessage="*" ControlToValidate="TextBoxPassword" Display="Dynamic" SetFocusOnError="True" ValidationGroup="Login"></asp:RequiredFieldValidator><br />
    <asp:Button ID="ButtonLoginValid" CssClass="Button" runat="server" Text="Valider" ValidationGroup="Login" /></asp:Panel>
<asp:Literal ID="LiteralResult" runat="server" EnableViewState="False"></asp:Literal>

'Login.ascx.vb 
'---------------------------------------------------------------------------------------

Partial Class UC_Login
    Inherits System.Web.UI.UserControl

    Protected Sub ButtonLoginValid_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonLoginValid.Click
        Page.Validate("Login")
        If Page.IsValid Then
            'Faudra bien sur vérifier tout ca dans une bdd etc ...
            If TextBoxName.Text = "Cyril" AndAlso TextBoxPassword.Text = "toto" Then
                Me.PanelLogin.Visible = False
                Me.LiteralResult.Text = "Authentification réussie"
            Else
                Me.LiteralResult.Text = "Nom d'utilisateur ou mot de passe incorrect"
            End If
        End If
    End Sub
End Class

'le fichier CSS 
'---------------------------------------------------------------------------------------
div.Login fieldset {width:290px;margin:auto;position:relative;}
div.Login fieldset label {text-align:right;width:70px;clear:left;display:block; float:left;margin:5px;}
div.Login fieldset input {width:170px;margin:5px;}
div.Login fieldset input.Button {margin-right:25px;float:right;width:70px;}

Conclusion

J'ai mis dans le zip 2 userControl : un control pour le login et un controle pour la page de contact, il y a aussi la page TestValidationGroup qui contient les 2 UC.

Ce qu'il y a d'interessant, c'est que si vous validez la partie login, il ne regardera pas si la partie contact est valide.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de paradoxxl le 09/02/2006 13:51:53

parfait, dommage que pas c# ;)

a+

signaler à un administrateur
Commentaire de astuces_jeux le 16/04/2006 10:18:26

chez moi quand je répond au formulaire a chaque fois il met il y a une erreur, veuiller réessayer plus tard je dois faire quoi pour le faire

signaler à un administrateur
Commentaire de astuces_jeux le 16/04/2006 10:24:17

plus précisement il met "Il y a eu une erreur lors de l'envoi du mail, veuillez réessayer plus tard. "
merci de m'aider stp

signaler à un administrateur
Commentaire de djigbo le 28/09/2006 17:48:26

Pour ce code les controles de sécurités pour faire echec aux "hackers" qui pourraient tenter des attacks sql injection ne sont pas mis en evidence.

J'aimerais en savoir plus à ce sujet. Comment verrouer son site internet contre les moissonneurs d'adresses mail... et autres virtuels vandals?

Merci
Djigbo  

signaler à un administrateur
Commentaire de jesusonline le 28/09/2006 17:57:46 administrateur CS

La question est vague et il n'y a pas vraiment de rapport avec la source, pose plutot la question sur le forum et si je trouve le temps (trés trés peu en ce moment) je te donnerais mon point de vu la dessus :-)

signaler à un administrateur
Commentaire de rad_hass le 26/09/2008 17:24:35

Bonjour,
Est ce que c'est possible de faire la même chose, mais côté JavaScript ? (avec ValidatorEnable par exemple ?)
Merci

signaler à un administrateur
Commentaire de jesusonline le 26/09/2008 18:19:56 administrateur CS

Les contrôles de validation de ASP.net sont actif à la fois coté client et côté serveur.
J'ai écrit plus en détail sur le sujet ici : http://blogs.developpeur.org/cyril/archive/2008/09/02/asp-net-tout-savoir-sur-la-validation-des-entr-es-utilisateurs-les-controles-de-validation.aspx

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Validation formulaire [ par Pirotes31 ] Bonjour,Voilà, je vous expose mon petit problème : j'ai installé sur Windows Millenium le serveur PWS. en essayant de lancer certaines applications j' comment forcer la validation d'un formulaire sans cliquer sur le bouto valider [ par alimux ] voila je désire forcer l'envoi d'un formulaire invisible sans que le clients n'ait a cliquer une 2eme fois sur un bouton comment dois-je faire?2eme pb Validation d,un formulaire Avec VBScript [ par stephanie ] J'ai un formulaire HTML que je valide avec une fonction VBSCript. Ma fonction m'envoie bien le message d'erreur s'il manque des valeurs dans des zone Validation de formulaire [ par thieu57 ] Bonjour,J'ai créé un formulaire avec des requiredfieldvalidator et autres de ce types pour éviter les champs vides ou incorrect.Mais le problème est q raffréchir les données après validation d'un formulaire [ par Cjulien ] voici mon souci: je remplis un formulaire puis lorsque je le valide, une page intermediaire rempli ma base de donnée et une fois ces données rajoutées Validation de formulaire en asp.net [ par pilouk ] Il y a t'il une méthode pour éviter que l'utilisateur ne clique 2 fois sur un bouton de validation de formulaire validation d'un formulaire asp [ par larditti ] Bonjour je viens de créer un formulaire avec boutons radio lié à une base access (sur dw mx) et je voudrai savoir comment faire pour que mon forms soi Validation de formulaire avec la touche "Enter" [ par SuperBouly ] Bonjour,&nbsp;&nbsp;Quelqu'un sait-il comment on peut attribuer un handle (ou autre chose) convenable &#224; un &lt;asp:button&gt; pour&nbsp;que la to ouvrir une autre page apres validation d'un formulaire en asp.net [ par Sardonnen ] bonjour,je recherche la syntaxe qui me permettrait d'ouvrir une autre page en passant certains &#233;l&#233;ments du formulaire apr&#232;s une validat ValidationSummary [ par Mickey VB ] Bonjour,J'ai un petit pb avec la validation d'un formulaire cr&#233;&#233; en ASP.netPour les boutons (validation et autres ...) j'ai utilis&#233; une


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.