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 :

[Débutant]Utilisation du repeater


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut [Débutant]Utilisation du repeater
    Bonjour,

    Je débute depuis quelques jours en asp .net et j'ai une question concernant le repeater.

    Dans ce repeater j'ai un web control quelconque qui contiens un checkbox.

    Dans ma page principal, j'ai une dropdownlist qui lorsque l'index change, ajoute dans une liste de web control, un nouveau web control et ensuite bind cette liste au repeater (classique jusque la je pense).

    Mon problème cependant est le suivant :

    Ma checkbox prends comme Text la valeur qui a été selectionnée dans la liste, exemple si dans ma liste je choisi "nom", ma checkbox aura comme text "nom". Le problème est que lorsque je change la valeur de la liste déroulante, ca rajoute bien un web user control mais, toutes les checkbox ont le texte qui change.

    Exemple:

    Checkbox 1 : Nom

    Je choisi Prénom dans ma liste :

    Checkbox 1 : Prénom
    CheckBox2 : Prénom

    Mon problème je le comprends, (à cause du AutoPostBack de ma liste) mais je n'arrive pas à le résoudre.

    Voila mon code dans ma page principal :

    Code c# : 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
       private static List<controles.Filtre> liste;
     
            protected void Page_Load(object sender, EventArgs e)
            {
                if (ddlFiltre.Items.Count == 0)
                {
                    this.ddlFiltre.Items.Add("Nom");
                    this.ddlFiltre.Items.Add("Prenom");
                    this.ddlFiltre.Items.Add("Unit");
                }
     
                if (liste == null)
                { 
                   liste = new List<controles.Filtre>();
                }
                this.ddlFiltre.SelectedIndexChanged += new EventHandler(ddlFiltre_SelectedIndexChanged);
     
            }
     
            void ddlFiltre_SelectedIndexChanged(object sender, EventArgs e)
            {     
                controles.Filtre temp = new controles.Filtre();
     
                liste.Add(temp);
     
                this.rptFIltre.DataSource = liste;
                this.rptFIltre.DataBind();
            }

    Dans le web user control :

    Code c# : 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
     
    protected void Page_Load(object sender, EventArgs e)
            {
     
                ddlCompare.Items.Clear();
                ddlCompare.Items.Add("égal");
                ddlCompare.Items.Add("différent");
                string var = (this.Parent.Parent.Parent.FindControl("ddlFiltre") as DropDownList).SelectedValue;
     
                ChangeCB(var);
            }
     
            public void ChangeCB(string param)
            {
                this.cbFiltre.Text = param;
                this.cbFiltre.Checked = true;
            }

    (Comme c'est une appli test pas besoin de tenir compte de la qualité de mon code C'est juste pour comprendre).

    Merci d'avance.

  2. #2
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Essaye voir de faire un if(!IsPostBack) dans le page_Load pour remplir ta DDL

  3. #3
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    salut,

    Merci pour la réponse, en fait je l'ai déjà tenté et ca ne fonctionne pas.

    Le postBack vaut ici toujours true, c'est pourquoi ca ne fonctionne pas^^

    Et pour rappel le problème ne viens pas de la ddl en soit mais de la valeur du texte de ma checkbox, qui à chaque fois que je crée un web user control ben toutes les checkbox prennent le même texte alors que chaque checkbox devrait avoir un texte unique (celui de la sélection de la liste).

    J'espère être clair

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    je ne comprends pas très bien le code, je voulais savoir comment le checkbox peut savoir que c'est lui qui est modifié et pas un autre

  5. #5
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    salut,

    c'est justement le problème Comment puis-je dire, c'est toi le checkbox de ce contrôle que j'affecte et pas tous les contrôles.

    En déboguant j'ai remarqué qu'il rentrait dans le load de mon web user control uniquement au moment de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.rptFIltre.DataBind();
    (si je rajoute une ligne après il passe toujours dans le load seulement après le DataBind)

    La je comprends rien, j'avoue :s

  6. #6
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    J'ai réussi en quelque sorte, sans savoir si c'est la bonne méthode ou non :

    Dans ma page "default" :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
         void ddlFiltre_SelectedIndexChanged(object sender, EventArgs e)
            {
                controles.Filtre temp = new controles.Filtre();
     
                temp = (this.LoadControl(@"~\controles\Filtre.ascx") as controles.Filtre);
     
                temp.RetourneCB = ddlFiltre.SelectedValue;
                liste.Add(temp);
     
                foreach (controles.Filtre o in liste)
                {
                    phlCritere.Controls.Add(o);
                }
            }

    Et dans le web user control j'ai pratiquement plus rien dans le load (juste le remplissage de mon dropdownlist

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

Discussions similaires

  1. [Débutant] Utilisation du debugger Eclipse avec Serveur Web
    Par tnodev dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/06/2005, 17h45
  2. Réponses: 19
    Dernier message: 28/04/2005, 15h36
  3. [Débutant]Utilisation de swing
    Par OtI$ dans le forum Débuter
    Réponses: 10
    Dernier message: 01/12/2004, 21h27
  4. [Débutant] Utilisation du mot clé ASSERT
    Par analysiz dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 29/07/2004, 11h43
  5. [Débutant] Utilisation de FOP - Register Fonts with FOP
    Par Johnbob dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 31/01/2004, 00h27

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