[C#/ASP.NET]DataGrid of Repeater vullen met objecten

Pagina: 1
Acties:

  • MoNo79
  • Registratie: Juli 2001
  • Laatst online: 21-03 21:47
Ik weet niet of het mogelijk is maar ik heb veel geplobeerd/gezocht maar ik kom er niet uit. Tot nu toe heb ik alleen kunnen vinden hoe ik een DataGrid kan vullen met een DataSet.

Wat ik graag zou willen dat ik mijn datagrid vul met een ArrayList van objecten die hier onder staan.

Ik hoop dat iemand mij kan helpen, want ik begin naar een paardagen expirimentenen/googelen erg beu te worden.

Gewenste resultaat:
Afbeeldingslocatie: http://img493.imageshack.us/img493/5753/voorbeeldg5ss.png


Methode om de DataGrid of Repeater te vullen
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void VulDataGrid()
{
    Map rootMap = new Map("rootMap");
    Map muziek = new Map("muziek");
    Mediabestand frans_bouwer = new Mediabestand("Frans Bouwer","Heb je even voor mij");
    Mediabestand andre_hazes = new Mediabestand("Andre Hazes","Het Laatste Rondje");

    //rootMap vullen met items
    rootMap.AddItem(muziek);
    rootMap.AddItem(frans_bouwer);
    rootMap.AddItem(andre_hazes);

    //Vullen datagrid of een repeater met alle items van rootMap
}


Code Map Class:
C#:
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
using System;
using System.Collections;
namespace Test
{
    public class Map
    {
        private string map_;
        private ArrayList lijstItems = new ArrayList();
        public Map(string map)
        {       
            this.map_ = map;
        }
        public string GetMap()
        {
            return this.map_;
        }
        public ArrayList GetItems()
        {
            this.lijstItems;
        }
        public void AddItem(object item)
        {
            this.lijstItems.Add(item);
        }
    }
}


Code Mediabestand Class:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
namespace Test
{
    public class Mediabestand
    {
        string artiest;
        string titel;
        public Mediabestand(string artiest, string titel)
        {
            this.artiest = artiest;
            this.titel = titel;         
        }
        public string GetArtiest()
        {
            return this.artiest;
        }
        public string GetTitel()
        {
            return this.titel;
        }
    }
}

[ Voor 22% gewijzigd door MoNo79 op 27-01-2006 19:46 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-04 17:49

NMe

Quia Ego Sic Dico.

Toch gek dat het bij mij op de eerste pagina van Google duizelt van de pagina's met antwoord op je vraag. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Casteloni
  • Registratie: November 2001
  • Laatst online: 26-03 13:31
Kan je de arraylist niet direct aan de repeater koppelen via de DataSource property? Meer info over deze property hier

Je kan de volgende typen aan een DataSource property meegeven:
code:
1
2
3
4
5
6
7
8
The following data sources are valid:

    * A DataTable
    * A DataView
    * A DataSet
    * A DataViewManager
    * Any component that implements the IListSource interface
    * Any component that implements the IList interface


Ik ben in een goede bui vandaag:
You can also bind the DataGrid to an ArrayList. .... When binding to an ArrayList, set the MappingName of the DataGridTableStyle to "ArrayList" (the type name).

[ Voor 16% gewijzigd door Casteloni op 27-01-2006 19:58 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:05
Waarom lukt het met een dataset wel, en met een Arraylist niet ?
Wees eens wat specifieker, wat lukt er niet, welke fout krijg je, krijg je geen resultaten etc...

https://fgheysels.github.io/


  • MoNo79
  • Registratie: Juli 2001
  • Laatst online: 21-03 21:47
Het probleem is dat ik wel een ArrayList kan Binden alleen het maken van colomns snap ik niet helemaal. Ik krijg 1 colomn met de ToString() waarde die het object weergeeft.
Voorbeeld van de ToString() methode:
C#:
1
2
3
4
public override string ToString()
{
return this.artiest + " - " + this.titel
}


Alleen hoe kan ik zorgen dat de waarde van GetArtiest() en GetTitel() in een andere colomn terecht komt.

Hoop dat het nu iets duidelijker is.

[ Voor 35% gewijzigd door MoNo79 op 27-01-2006 20:11 ]


  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 05-04 18:13

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 14-04 21:29
Je moet eerst nog duidelijk maken wat nu column gaan worden en wat niet. Dat kun je doen door public property's op te nemen in je eigen classen. Een manier omdat te doen kun je vinden o.a. in:

Object Binding in DataGrid with C#
How to Bind an ArrayList to a DataGrid

Waarom maak je gebruik van Getter/setters als methoden en gebruik je geen property's?

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:05
Waarom gebruik je eigenlijk getter/setter methods ?
In .NET heb je ook zoiets als properties.

Als je nu gebruik maakt van properties, dan zal de DataGrid wel weergegeven worden zoals jij het wilt.
Je moet er , in webforms, dan wel voor zorgen dat je zowel een get als een set property hebt.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Test
{
    private string _val1;
    private string _val2;
    
    public string Val1
    {
         get
         {
             return _val1;
         }
         set
         {
              _val1 = value;
         }
    }
    ...
}


Als je het niet op die manier wilt doen, dan denk ik dat het makkelijker voor jou is als je een repeater gebruikt ipv een grid.

edit:
zzz... zpuit 11

https://fgheysels.github.io/


  • MoNo79
  • Registratie: Juli 2001
  • Laatst online: 21-03 21:47
Ja hier kan ik wat mee, erg bedankt :)
Waarom gebruik je eigenlijk getter/setter methods ?
In .NET heb je ook zoiets als properties.

Als je nu gebruik maakt van properties, dan zal de DataGrid wel weergegeven worden zoals jij het wilt.
Je moet er , in webforms, dan wel voor zorgen dat je zowel een get als een set property hebt.
...

Als je het niet op die manier wilt doen, dan denk ik dat het makkelijker voor jou is als je een repeater gebruikt ipv een grid.
Over die get en set is wel handig idd. Ik ben java gewend dus vandaar dat ik hier niet aan dacht. :)

[ Voor 53% gewijzigd door MoNo79 op 27-01-2006 20:31 ]


  • MoNo79
  • Registratie: Juli 2001
  • Laatst online: 21-03 21:47
Sybr_E-N schreef op vrijdag 27 januari 2006 @ 20:19:
Je moet eerst nog duidelijk maken wat nu column gaan worden en wat niet. Dat kun je doen door public property's op te nemen in je eigen classen. Een manier omdat te doen kun je vinden o.a. in:

Object Binding in DataGrid with C#
How to Bind an ArrayList to a DataGrid

Waarom maak je gebruik van Getter/setters als methoden en gebruik je geen property's?
He dank je deze manier is ook super simpel, waaom heb ik dit niet zelf kunnen vinden 8)7
Pagina: 1