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 :

Customvalidators en série


Sujet :

ASP.NET

  1. #1
    Membre averti
    Homme Profil pro
    Front Office Coldfusion à la Commission Européenne
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Front Office Coldfusion à la Commission Européenne
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut Customvalidators en série
    Bonjour,

    Dans un formulaire, j'ai un tableau qui contient plusieurs lignes.

    Chaque ligne est composée de 2 textbox et 2 radiobuttonlist.

    Ce que je dois faire, c'est vérifier pour chaque ligne que si le 1er textbox est complété, que toutes les autres données sur la même ligne le soit également.

    Je pensais utiliser un customvalidator.

    Le problème, c'est que même si une ligne n'est pas valide (donc qu'il manque des infos), le submit du form a quand même lieu, le "Page.IsValid" est = à true et je ne comprends pas pourquoi.

    Voici un petit bout de code plus explicite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <script runat="server">
        void VerifData(CustomValidator validator, TextBox tbNom, TextBox tbAge, RadioButtonList rblBBQ, RadioButtonList rblGouter)
        {
            validator.IsValid = false;
            if (Convert.ToInt32(rblYesNo.SelectedValue) == 1)
            {
                if (string.IsNullOrEmpty(tbNom.Text) == false)
                {
                    if (string.IsNullOrEmpty(tbAge.Text) == false || rblBBQ.SelectedItem == null || rblGouter.SelectedItem == null)
                    {
                        validator.IsValid = false;
                    }
                    else
                    {
                        validator.IsValid = true;
                    }
                }
            }
        }        
     
        void verif0(object source, ServerValidateEventArgs args)
        {
            VerifData(valTxt0, txtNom0, txtAge0, rblBBQ0, rblGouter0);
        }
    </script>
    Et dans mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:TextBox ID="txtNom0" runat="server" Width="250px" meta:resourcekey="txtNom0Resource1"
                        CssClass="field" CausesValidation="True" ></asp:TextBox>
                    <asp:CustomValidator runat="server" ErrorMessage="<br>Veuillez renseigner votre participation au barbecue / goûter "
                        Font-Bold="True" OnServerValidate="verif0" ID="valTxt0" 
                        meta:resourcekey="valTxt0Resource1" Display="Dynamic"></asp:CustomValidator>
    Merci d'avance pour votre aide,

    Christophe

  2. #2
    Membre chevronné Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Par défaut
    bonjour je pense que tu à un problème de codage tout simplement car si tu regarde sur : http://msdn.microsoft.com/fr-fr/libr...8VS.80%29.aspx

    tu vera que la fonction qu'appel le CustomValidator ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void ServerValidation (object source, ServerValidateEventArgs args)
    donc je suppose que ne trouvant pas la méthode il retourne True.

    L'autre possibilité est que tu à bien déclarer de la bon façon mais derrier tu appel ta méthode que tu nous montre hors le validor travail sur le parametre : object source.

  3. #3
    Membre averti
    Homme Profil pro
    Front Office Coldfusion à la Commission Européenne
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Front Office Coldfusion à la Commission Européenne
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    Quand je mets un breakpoint au niveau de mon script, si un des valeurs de ma ligne est vide, la valeur "IsValid" est bien à false ...

    Ce truc va me rendre dingue, ça parrait pourtant tout bête

    Voici à quoi ressemble le formulaire (pour se faire une meilleure idée)


  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    utilise:
    du coup ta méthode void VerifData(CustomValidator validator, TextBox tbNom, TextBox tbAge, RadioButtonList rblBBQ, RadioButtonList rblGouter) devrait ètre du genre

    bool VerifData(CustomValidator validator, TextBox tbNom, TextBox tbAge, RadioButtonList rblBBQ, RadioButtonList rblGouter)

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        void verif0(object source, ServerValidateEventArgs args)
        {
            args.IsValid = VerifData(valTxt0, txtNom0, txtAge0, rblBBQ0, rblGouter0);
        }

  5. #5
    Membre averti
    Homme Profil pro
    Front Office Coldfusion à la Commission Européenne
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Front Office Coldfusion à la Commission Européenne
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    Salut,

    Merci mermich pour ton aide.

    Cependant, dans mon mon VerifData, je passe en paramètres le CustomValidator et si j'essaie
    je reçois une erreur
    The name 'args' does not exist in the current context
    Ou alors, je n'ai rien compris

    Christophe

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    On s'est mal compris, je mets donc le code cs complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <script runat="server">
        bool VerifData(CustomValidator validator, TextBox tbNom, TextBox tbAge, RadioButtonList rblBBQ, RadioButtonList rblGouter)
        {
            bool res = false;
            if (Convert.ToInt32(rblYesNo.SelectedValue) == 1)
            {
                if (string.IsNullOrEmpty(tbNom.Text) == false)
                {
                    if (string.IsNullOrEmpty(tbAge.Text) == false || rblBBQ.SelectedItem == null || rblGouter.SelectedItem == null)
                    {
                       res = false;
                    }
                    else
                    {
                        res = true;
                    }
                }
            }
     
            return res;
        }        
     
        void verif0(object source, ServerValidateEventArgs args)
        {
            args.IsValid = VerifData(valTxt0, txtNom0, txtAge0, rblBBQ0, rblGouter0);
        }
    </script>

  7. #7
    Membre averti
    Homme Profil pro
    Front Office Coldfusion à la Commission Européenne
    Inscrit en
    Juillet 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Front Office Coldfusion à la Commission Européenne
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 30
    Par défaut
    MERCI

    Désolé, je n'avais pas compris et ça fonctionne maintenant !

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

Discussions similaires

  1. [Série] Accès au port série sous linux
    Par ghost dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2007, 10h43
  2. Numéro de série du disque dur
    Par h_kamel dans le forum Assembleur
    Réponses: 8
    Dernier message: 21/05/2007, 11h28
  3. Compression d'une série d'images jpeg
    Par Tchello dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2003, 19h59
  4. Créer une série dans un chart
    Par cyrose dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/11/2002, 11h37
  5. Hors série PCTEAM sur Direct 3D
    Par Shakram dans le forum DirectX
    Réponses: 1
    Dernier message: 12/10/2002, 16h34

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