IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

le CompareValidator sur un DDL


Sujet :

ASP.NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut le CompareValidator sur un DDL
    Bonjour tout le monde.

    Je dois vraiment pas être doué ! Un truc aussi simple que ça, j'arrive pas à le faire, décidément.

    Alors j'ai mis un DDL dans ma page et je la carge par le CodeBehind avec un entier dans le champ Value et un texte dans le champ Text.
    Juste en dessous je met un CompareValidator dans le but de dire que si la liste affiche le premier élément (Value = 0) faut envoyer une alerte.

    Et donc je met le code suivant sur mon CompareValidator :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With cvCategorie
                .ErrorMessage = "message d'erreur"
                .Operator = ValidationCompareOperator.NotEqual
                .ValueToCompare = 0
                .Type = ValidationDataType.Integer
            End With
    ça me parait pourtant simple et clair. Et bien lui, il trouve pas et me passe le test haut la main !!! Et bien sur, vu qu'il y a un enregistrement en BDD dérrière, ben j'ai un plantage !

    Est ce que j'ai oublié un truc important, visiblement comme le nez au milieu de la figure ?
    Pourtant j'ai pris l'exemple sur la MSDN, donc, a priori une source sûre.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    T'as pas assigné de contrôle à valider à ton validator

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ah pardon, j'ai oublié de poster le code HTML. Si, si je l'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:DropDownList ID="lstCategorie" runat="server"></asp:DropDownList>
                <asp:CompareValidator ID="cvCategorie" runat="server" ControlToValidate="lstCategorie"></asp:CompareValidator>
    Et pendant que j'y suis voilà le code chargement de la DDL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim dt As DataTable = New DManager("DataDev").RetournerTable("SELECT IdCategorie, NomCategorie" & Session("SES_Langue") & " AS NomCategorie FROM Categorie ORDER BY OrdreCategorie")
            With lstCategorie
                .DataSource = dt
                .DataTextField = "NomCategorie"
                .DataValueField = "IdCategorie"
                .DataBind()
            End With

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Faudrait savoir si le validator compare le TextField ou le ValueField

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Je pense que dans ton cas, vaut mieux un requiered

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <asp:DropDownList id="DropDownList1" runat="server">
       <asp:ListItem Selected="True">Select a profession</asp:ListItem>
       <asp:ListItem>Programmer</asp:ListItem>
       <asp:ListItem>Lawyer</asp:ListItem>
       <asp:ListItem>Doctor</asp:ListItem>
       <asp:ListItem>Artist</asp:ListItem>
    </asp:DropDownList>
     
    <asp:RequiredFieldValidator id="RequiredFieldValidator1"  
      runat="server" ErrorMessage="Please make a selection" 
      ControlToValidate="DropDownList1" 
      InitialValue="Select a profession">
    </asp:RequiredFieldValidator>
    C'est le InitialValue qui fait le boulot

  6. #6
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.
    J'y avais pensé aussi au départ. Mais doit y avoir un problème avec le chargement de la DDL par la BDD car cela ne fonctionne pas du tout.
    En gros, ça laisse tout passer, ça test que dalle.

    Et là, je ne vois pas trop comment faire.

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Bon, comme quoi, à force de pugnacité on fini par trouver.

    En fait, le CompareValidator est tout fait le bienvenu. Y a juste un petit détail à rajouter : le premier item de la DDL

    Donc j'ai fait ça côté HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:DropDownList ID="lstCategorie" runat="server"></asp:DropDownList>
                <asp:CompareValidator ID="cvCategorie" runat="server" ControlToValidate="lstCategorie" Operator="NotEqual" ValueToCompare="Value"></asp:CompareValidator>
    Et ça en CodeBehind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim dt As DataTable = New DManager("DataDev").RetournerTable("SELECT IdCategorie, NomCategorie" & Session("SES_Langue") & " AS NomCategorie FROM Categorie ORDER BY OrdreCategorie")
            With lstCategorie
                .DataSource = dt
                .DataTextField = "NomCategorie"
                .DataValueField = "IdCategorie"
                .DataBind()
                .Items.Insert(0, New ListItem("...", "Value"))
            End With
    D'abords j'ai découvert qu'on pouvait rajouter des Item aprés avoir fair un DataBind (je savais pas) et ensuite, il faut comparer la Value (pour répondre à ta question un poil plus haut) mais pour les comparer faut les mettre en évidence, enfin c'est ce que j'en déduis.

    Bref, ça marche, c'est le principal.

    @ la prochaine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreurs sur ordres DDL
    Par r83 dans le forum Oracle
    Réponses: 19
    Dernier message: 27/01/2011, 14h37
  2. CompareValidator et opération sur date saisie
    Par lutecefalco dans le forum ASP.NET
    Réponses: 7
    Dernier message: 10/07/2008, 12h29
  3. Réponses: 4
    Dernier message: 26/03/2008, 10h16
  4. Réponses: 4
    Dernier message: 26/03/2008, 10h16
  5. Réponses: 4
    Dernier message: 21/08/2006, 03h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo