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 :

Affichage dynamique de contrôles utilisateurs


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut Affichage dynamique de contrôles utilisateurs
    Bonjour,

    Je ne parviens pas à afficher dans ma page une liste de contrôles utilisateurs.

    Ce qui marche à peu près :

    Ici, dans une boucle foreach, j'ajoute des checkbox dans mon PlaceHolder.
    L'affichage se fait...mais comment en afficher 1 par ligne (et non tous à la suite) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PlaceHolder1.Controls.Add((CheckBox)LoadControl(typeof(CheckBox), null));

    Ce qui ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PlaceHolder1.Controls.Add((MonCheckBox)LoadControl(typeof(MonCheckBox), parametres_constructeur));
    J'ai mon controle utilisateur MonCheckBox qui est un Checkbox adapté.
    Dans la même boucle foreach que précédemment, je tente d'ajouter ma liste de controles. Il n'y a pas d'erreur détectée mais rien ne s'affiche sur ma page.

    Sauriez-vous m'aider ? Merci beaucoup.
    T.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Par défaut
    Bonjour,


    Pour le premier point, c'est de la mise en page donc ... un p'tit coup de Css

    Pour le deuxième point il serait pas mal d'avoir un peu plus de précisions. Comme par exemple le code ton control MonCheckBox.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Mon contrôle utilisateur est le suivant : CheckBoxCritere.ascx

    Il s'agit d'un contrôle composé d'une checkbox auquel je rajoute notamment un attribut :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    public partial class CheckBoxCritere : System.Web.UI.UserControl
        {       
            public Critere Critere { get; set; }
            public string Libelle
            {
                get { return chkCritere.Text; }
                set { chkCritere.Text = value; }
            }
            public CheckBox ChkCritere
            {
                get { return chkCritere; }
            }
     
            public CheckBoxCritere()
            {           
            }
     
            public CheckBoxCritere(Critere c)
            {
                this.chkCritere = new CheckBox();
                this.chkCritere.Text = c.NomCritere;
                this.EnableViewState = true;
                this.Visible = true;
                Critere = c;
            }
     
            public void AffecterValeur()
            {
                if (chkCritere.Checked)
                    Critere.Valeur = "true";
                else
                    Critere.Valeur = "false";
            }
     
     
            protected void Page_Load(object sender, EventArgs e)
            {
     
     
            }
        }

    La classe critère définit les caractéristique d'un critère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Critere
        {
            public string NomCritere;      
            private string valeur;
            public string Valeur {get; set;}
     
            public Critere()
            {
            }
     
           ...        
        }
    A chaque critère corespond une checkbox qui sera cochée ou non.
    Un "check" modifie l'atribut "valeur" de l'instance de la classe "critere".


    Dans ma page aspx j'ai déclaré le UC :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ Register TagPrefix="uc" TagName="CheckBoxCritere" Src="~/UserControl/CheckBoxCritere.ascx" %>

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    Où le membre "chkCritere" est-il ajouté à la propriété "Controls" de votre User Control ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Dans le CheckBoxCritere.ascx.designer.cs j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public partial class CheckBoxCritere {
     
            /// <summary>
            /// Contrôle chkCritere.
            /// </summary>
            /// <remarks>
            /// Champ généré automatiquement.
            /// Pour modifier, déplacez la déclaration de champ du fichier de concepteur dans le fichier code-behind.
            /// </remarks>
            protected global::System.Web.UI.WebControls.CheckBox chkCritere;
        }
    Est-ce votre demande ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Bon, en faisant simplement ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CheckBoxCritere c1 = (CheckBoxCritere)LoadControl("UserControl/CheckBoxCritere.ascx");
                    c1.Libelle = c.NomCritere;
                    PlaceHolder1.Controls.Add(c1);
    ça marche...

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

Discussions similaires

  1. Supprimer un contrôle utilisateur dynamiquement
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/06/2007, 01h03
  2. Création des contrôles utilisateurs dynamiquement
    Par TheNet dans le forum ASP.NET
    Réponses: 19
    Dernier message: 30/04/2007, 21h44
  3. Chargement dynamique des contrôles utilisateurs
    Par outat dans le forum ASP.NET
    Réponses: 3
    Dernier message: 03/04/2007, 12h11
  4. Création dynamique de contrôles
    Par qi130 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/12/2004, 13h19
  5. affichage dynamique en fonction des données en base
    Par jengo dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/10/2004, 10h22

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