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 :

Foreach dans une page Web


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Par défaut Foreach dans une page Web
    Bonjour à tous,

    je travaille en AJAX ASP.NET C#.

    Je suis dans une page web, et je voudrai parcourir les textbox présentes, pour effectuer un test dessus.

    Donc j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    foreach (Control c in Page.Form.Controls)
    {
        if (c is TextBox)
        {
            TextBox t = c as TextBox;
            if (t.Text == "")
            {
                t.Text = "0";
            }
            t.Text = t.Text.Replace(".", ",");
        }
    }
    Déjà, j'ai mis un peu de temps à trouver Page.Form.Control (je ne sais même pas si c'est le bon conteneur).

    Ca a marché genre 10 fois, et puis d'un coup, ça ne fonctionne plus - et en plus j'ai rien fais de spécial pour que ça ne fonctionne plus...

    Quand je regarde dans le débogueur, les "_controls" des" Membres non publics" de "Page.Form.Control" sont mes UpdatePanel, ScriptManager et autres LitteralControl, mais toutes mes textbox et mes labels, sont affichés en tant que "null"...

    J'ai pas trop envie d'appeler une fonction en passant en paramètre toutes les textbox de la page...

    WTF ? Quel est le problème ? Sinon avez-vous une autre solution ? Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Par défaut
    Il faudrais que tu puisses être sur de l'ordre des controls dans ta page.

    En effet si les contrôles sont mis dans un autre ordre, alors ça risque de poser des soucis.

    Essaye de bien rajouter tes champs à la fin et de passer dedans un peu comme un bourrin, j'entends par là de prendre les controls[controls.size()-1] et de le caster en textbox.

    C'est bourrin mais au moins normalement ça marche

  3. #3
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Ton code est bon, et il devrait fonctionner.

    C'est bizarre que tes TextBox soient d'un coup devenu nulles. Tu n'as absolument rien changé entre les deux tests ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Par défaut
    @laedit : Vraiment rien changé, je viens de tout re-vérifier...
    En fait voila ce que donne le débogueur :

    Je comprends pas...

    @Plorf : tu veux dire quoi par l'ordre des controls ? Et je les rajoute à la fin de quoi ?

  5. #5
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Tes TextBox sont directement la page ou dans un conteneurs ?

    Dans le dernier cas, tente de faire la même boucle mais remplace Page par le nom de ton conteneur.

    Mais c'est bizarre que tes TexBox soient nulles d'un coup. Lors du chargement de la page, le sont-elles aussi ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  6. #6
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Par défaut
    En fait c'est une page unique, je n'y accède pas par une autre page, juste par l'aperçu Visual Web Developper.

    Les textbox sont dans un UpdatePanel, mais je ne peut pas faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach(Control c in UpdatePanel1)
    {
        //Instructions
    }
    car UpdatePanel ne contient pas de méthode GetEnumerator.

    Je viens de tester avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach(Control c in UpdatePanel1.Controls)
    {
        //Instructions
    }
    mais ça ne fonctionne pas non plus...

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

Discussions similaires

  1. Son dans une page Web avec Firefox
    Par diod dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 02/12/2005, 17h49
  2. Réponses: 5
    Dernier message: 13/11/2005, 21h24
  3. Plein écran dans une page Web
    Par uron86 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2005, 16h44
  4. [applet] lancer une applet mais dans une page web
    Par dzincou dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/08/2004, 13h32
  5. Insérer un fichier dans une page web
    Par Mad666 dans le forum ASP
    Réponses: 6
    Dernier message: 05/05/2004, 11h22

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