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 :

Repeater avec une datasource List<Object>


Sujet :

ASP.NET

  1. #1
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut Repeater avec une datasource List<Object>
    Bonjour,

    je dispose d une liste List<Questions>. Chacun des objets Questions contient des attributs style Id, Libelle, etc..

    Est il possible de directement binder un repeater a cette liste et de taper dans les proprietes de mon objet pour faire apparaitre ce que je veux?

    j ai essayer differents trucs mais pour l instant je fais un xml avec mes données pour binder avec un repeater et cette solution ne me convient pas completement...

    D' avance merci pour vos lumiéres,

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Tu peux utiliser un ObjectDataSource de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <asp:ObjectDataSource runat="server" ID="MonObjectDataSource" TypeName="test.TestObject" SelectMethod="GetValue" />
    <asp:Repeater runat="server" ID="LeRepeater" DataSourceID="MonObjectDataSource">
    	<ItemTemplate>
    		<asp:Label runat="server" Text="<%#Container.DataItem %>" />
    	</ItemTemplate>
    </asp:Repeater>
    pour un objet de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class TestObject
    {
    	public int[] GetValue()
    	{
    		return new int[] { 1, 2, 3, 4 };
    	}
    }

  3. #3
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    ok merci grace à ton exemple , jai pu faire ce que je voulais. voila le resultat, il s'agissait pour moi de montrer le contenu d'une list<Object> dans un conteneur ASP style repaeter ou autre.

    voilà le résultat si cela intéresse quelqu'un :

    le repeater qui va afficher les données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            <asp:Repeater runat="server" ID="LeRepeater" >
                <ItemTemplate>
                    <asp:Label ID="Label1" runat="server" 
                                   Text="<%# ((HealthMonitoring.Question)
                                                     Container.DataItem).libelle %>" />
                </ItemTemplate>
            </asp:Repeater>
    le code derriere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     //un objet qui contient des proprietes quelquelles soient
        public class Question
        {
            public string libelle;
     
            public Question(string lib)
            {
                libelle = lib;
            }
        }
    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
     //Quelque soit l objet qui contient une liste d autre objet  , ici une 
        //Question
        public class TestObject
        {
            List<Question> l;
            public List<Question> GetValue()   { return l; }
     
            //give the list some feed
            public TestObject()        {
                l = new List<Question>();
                l.Add(new Question("test 1"));
                l.Add(new Question("test 2"));
                l.Add(new Question("test 3"));
                l.Add(new Question("test 4"));        }
        }
    un instanciation de tout ca dans la page load par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                //instanciation  avec quelques valeurs predefinies
                TestObject to = new TestObject();
                LeRepeater.DataSource = to.GetValue();
                LeRepeater.DataBind();
            }
        }

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    dans ce cas, tu n'es pas obligé de passer par un objectdatasource, tu peux binder directement ta liste à ton repeater. L'intéret d'utiliser un objectdatasource semble ici limité, à moins que tu n'ais une raison.

    Dans ce cas tu peux faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:Repeater runat="server" ID="LeRepeater" DataSource="<%#new int[] {1, 2, 3, 4} %>">
    En fait, peut être bindé tout ce qui implémente IEnumerable


    Attention par contre, il faudra appeler la méthode DataBind() explicitement sur ton repeater

    Regarde dans ce tutoriel http://nico-pyright.developpez.com/t.../#Ldatabinding

  5. #5
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Merci!

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

Discussions similaires

  1. Lié un combobox avec une arryalist contenant des objects
    Par fab2050 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/11/2008, 10h47
  2. [W3C] Problème avec une balise liste
    Par Gizmil dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/05/2008, 11h39
  3. [LINQ] Where avec une Generic.List
    Par Firedeal dans le forum Framework .NET
    Réponses: 2
    Dernier message: 28/03/2008, 15h32
  4. [C#] Comment lier un label avec une DataSource ?
    Par LE NEINDRE dans le forum ASP.NET
    Réponses: 3
    Dernier message: 29/08/2006, 14h17
  5. Question pour Hibernate avec une DataSource
    Par akademiks dans le forum Hibernate
    Réponses: 4
    Dernier message: 28/08/2006, 23h17

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