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 :

Binding List<UserControl> to Repeater


Sujet :

ASP.NET

  1. #1
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut Binding List<UserControl> to Repeater
    Bonjour,

    J'ai un problème que j'arrive pas à résoudre :
    Mon probleme est le suivant :

    Je veux binder une liste de userControl à un repeater
    Voici mon Code :
    Code Behind ==>
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    protected void Page_Load(object sender, EventArgs e)
            {
                if(!IsPostBack)
                {
     
                    AfficherQuestionnaire();
                }
            }
     
            private void AfficherQuestionnaire()
            {
                var lstControls = new List<BaseUserControl>();
                var context = new SCMModelContainer();
                foreach(Question question in context.Questions)
                {
                    var userControl = AddQuestionAndResponses(question);
                    lstControls.Add(userControl);
                }
                rQuestions.DataSource = lstControls;
                rQuestions.DataBind();
            }
     
            protected BaseUserControl AddQuestionAndResponses(Question question)
            {
                var userControl = this.LoadControl(question.CurrentResponseType);
                if (userControl != null)
                {
                    userControl.ID = string.Format("userControl_Question_{0}_Axe{1}", question.Id, question.AxeId);
                    userControl.QuestionString = question.Libelle;
     
                    if (question.Responses.Count != 0)
                    {
                        userControl.Responses = question.Responses.ToList();
                        userControl.BindControl();
                    }
     
                    if (question.ResponseTypeId < 4 || (question.ResponseTypeId > 3 && question.Responses.Count > 0))
                    {
                        //pnlQuestions.Controls.Add(userControl);
                    }
                }
                return userControl;
            }
     
            protected BaseUserControl LoadControl(EResponseType responseType)
            {
                switch (responseType)
                {
                    case EResponseType.Text :
                        return LoadControl("~/Client/UCS/ResponseAsTextBox.ascx") as BaseUserControl;
     
                    case EResponseType.Numeric:
                        return LoadControl("~/Client/UCS/ResponseAsNumericalUpDown.ascx") as BaseUserControl;
     
                    case EResponseType.Date:
                        return LoadControl("~/Client/UCS/ResponseAsDatePicker.ascx") as BaseUserControl;
     
                    case EResponseType.List:
                        return LoadControl("~/Client/UCS/ResponseAsDropDownList.ascx") as BaseUserControl;
     
                    case EResponseType.SimpleChoix:
                        return LoadControl("~/Client/UCS/ResponseAsRadioButtonList.ascx") as BaseUserControl;
     
                    case EResponseType.MultiChoix:
                        return LoadControl("~/Client/UCS/ResponseAsCheckBoxList.ascx") as BaseUserControl;
                }
                return null;
            }
    Page Aspx ==>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <asp:Repeater ID="rQuestions" runat="server">
            <ItemTemplate>
                <%#Container.DataItem%>
            </ItemTemplate>
        </asp:Repeater>
    En fait mon probleme est que les controles ne s'afichent pas coté client, le repeater les prend commes des objets et applique la methode ToString() et je me retrouve avec un affichage (voir piece jointe)
    Images attachées Images attachées  

  2. #2
    Membre expérimenté Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Par défaut
    Bonjour,
    Personne n'as de suggestion pour moi ??? Une piste à suivre ???

    En fait j'ai trouvé une solution pour contourner mon problème mais elle est pas trop élégante, je comptais sur les lumières de ce forum afin d’éviter son utilisation mais je me trouve contraint de l'utiliser finalement

    En tout cas merci pour votre aide inestimable les gars !!!!


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

Discussions similaires

  1. [sl3] Binding sur un usercontrol
    Par herrs dans le forum Silverlight
    Réponses: 2
    Dernier message: 28/08/2009, 17h24
  2. Problème de Binding avec un UserControl
    Par birdyz dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 20/02/2009, 12h31
  3. Binding List<DateTime> sur DateTimePicker
    Par OAJLI dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/09/2008, 14h08
  4. [WPF] Probléme de binding dans un UserControl :(
    Par UNi[FR] dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 17/07/2008, 15h51
  5. Binding entre deux UserControl
    Par mehdi_ouni dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/03/2008, 16h10

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