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 :

DataGrid; ITemplate; List<Objet>


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut DataGrid; ITemplate; List<Objet>
    voila j'ai une liste de Persones

    - Persone ( Nom; Age; Marié(oui/nom); absentéisme<DateTime,int> , image )
    - Persones<person>

    J’aimerai que quand j’affecte « Personnes< Personne > » à la propriété DataSource du DataGrid

    Col 1 : Affiche un graphe d’évolution (Absentéisme<DateTime,int>) (Un graphe minuscule sans les axes. Just pour avoir un aperçue)
    Col 2 : Le Nom
    Col 3 : L’âge
    Col 4 : une CheckBox (Marié(oui/nom))
    Col 5 : une Image

    une DataGrid spécialisé dans l'affichage des personnes Comment dois-je procéder ?

    Mon idée est la suivante :

    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
     
    public class myTemplate : ITemplate
    {
        ListItemType templateType;
        string columnName;
     
        public myTemplate(ListItemType type, string colname)
        {
            templateType = type;
            columnName = colname;
        }
     
        virtual protected Control desplayHeader()
        {
            //....
            return ctrl;
        }
     
        virtual protected Control desplayItem()
        {
            //...
            return ctrl;
        }
     
        virtual protected Control desplayFooter()
        {
            //...
            return ctrl;
        }
     
        public void InstantiateIn(System.Web.UI.Control container)
        {
            switch (templateType)
            {
                case ListItemType.Header:
                    container.Controls.Add(desplayHeader());
                    break;
     
                case ListItemType.Item:
                    container.Controls.Add(desplayItem());
                    break;
     
                case ListItemType.Footer:
                    container.Controls.Add(desplayFooter());
                    break;
            }
        }

    Questions :
    1 - Qu’elle est la meilleure façon pour accéder aux propriétés des éléments de la liste pour les affecter aux propriétés des contrôles?

    2 – Si je créer un user control spécialisé dans l’affichage des personnes, comment la DataGrid Saura qu’elle type de colonne il faut créer suivant le type de la propriété de la class Persone ?

  2. #2
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    Pour la 1ere question c'est bon j'ai trouvé la répense

    Si on prend la CheckBox pour afficher la personne est maré ou pas.

    On obtient :

    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
     
     
    virtual protected Control desplayItem()
        {
            CheckBox chb = new CheckBox();
            chb.DataBinding += new EventHandler(chb_DataBinding);
        }
     
     
    virtual protected void chb_DataBinding(object sender, EventArgs e)
        {
            CheckBox chb = (TextBox)sender;
     
            DataGridItem container = (DataGridItem)chb.NamingContainer;
            chb.Checked = ((Personne)container.DataItem).Marié;
        }
    Réste la deuxieme ?

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu peux passer par des ItemTemplate au lieu des trucs par défaut

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    Citation Envoyé par lutecefalco
    Tu peux passer par des ItemTemplate au lieu des trucs par défaut
    Ça c'est sure.

    Ce n’est pas ça le problème.

    J’ai des items Template pour chaque type de colonnes (Image, Boolean, graphe).

    Le problème c'est comment dire à la Datagrid lors du Binding a la List<Personne> que :
    - pour le type X1 utilise le Template Y1
    - pour le type X2 utilise le Template Y2

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    J'ai pas bien compris

  6. #6
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    J'explique :

    Quand je fais

    1 - List<Personne> maListe = new List<Personne>() ;
    2 - Je remplis la liste
    3 - je fais MyDataGrid.Datasource = maListe ;

    La DataGrid Affiche par défaut une colonne contenant la Name des personnes.

    Ce que je veux moi c'est qu’elle affiche toute les colonnes décrivant les personnes leurs nom ; Image …. Etc.

    J’ai créer des Item Template pour chaque type (ImageTemplate, GrapheTemplate, … )

    - Il reste d'automatiser le choix des colonnes suivant le type des propriétés ?

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 26/04/2011, 18h00
  2. Tri d'une liste d'objet CObList
    Par cjacquel dans le forum MFC
    Réponses: 1
    Dernier message: 13/07/2005, 13h50
  3. [MFC] Retourner une liste d'objets
    Par 1cado dans le forum MFC
    Réponses: 10
    Dernier message: 28/07/2003, 12h11
  4. [Kylix] Composant - Liste d'objet
    Par Metal3d dans le forum EDI
    Réponses: 1
    Dernier message: 13/12/2002, 22h17
  5. liste d'objets
    Par Pierrot dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2002, 09h56

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