[insert obligatory "ja ik heb gezocht etc."] 
Ik ben momenteel bezig met een site voor een klant, en aangezien er weinig haast bij is heb ik de kans aangegrepen om eens wat te experimenteren. De site van de klant bevat o.a. een pagina om nieuwsitems weer te geven, en aangezien ik deze keer mijn hele DAL wou vangen in custom classes, wilde ik die ook door laten vloeien naar de nieuwspagina om zo dmv. een Repeater een lijst met de laatste nieuwsitems te laten zien (met samenvatting ipv volledige body), of (afhankelijk van de result set) de volledige inhoud van een enkel nieuwsbericht.
Hiervoor heb ik een class TvrNieuwsBericht:
en een class TvrNieuwsArchief die een arraylist inherit
(hij lijkt zo een beetje nutteloos, maar het is de bedoeling dat hier nog meer functionaliteit bijkomt).
Mijn class TvrNieuwsDb haalt aan de hand van een parameter danwel een lijst van nieuwsberichten, danwel een enkel nieuwsbericht op, en returned een TvrNieuwsArchief met TvrNieuwsBericht -en erin.
Het lukt perfect om TvrNieuwsArchief te binden aan een Datagrid (met autogeneratecolumns aan) maar bij een Repeater geeft ie een error.
In de class browser van de ASP.Net Web Matrix zag ik dat elke webcontrol die ITemplate implementeert, de Databind method afkomstig van System.Web.Control override't (hoe zeg je dat in goed Nederlands?
), maar ik word verder nergens wijzer wat dat betekent voor mijn DAL classes. Google searches leveren artikelen op die enkel vermelden dat je om te databinden een class moet hebben die IEnumerable inherit (wat TvrNieuwsArchief middels ArrayList doet), maar er wordt nergens gesproken over wat je moet doen als je dit aan een repeater wilt binden.
Op MSDN nog wel een artikel over het ontwerpen van een control die ITemplate implementeert, maar niet hoe je daar een custom class in een arraylist aan kunt binden.
Dus mijn vraag: wat moet ik doen om mijn custom class in de arraylist te binden aan een control die ITemplate implementeert? Bvd.
[edit]
Bij het binden aan een repeater krijg ik de volgende exception:
Ik ben momenteel bezig met een site voor een klant, en aangezien er weinig haast bij is heb ik de kans aangegrepen om eens wat te experimenteren. De site van de klant bevat o.a. een pagina om nieuwsitems weer te geven, en aangezien ik deze keer mijn hele DAL wou vangen in custom classes, wilde ik die ook door laten vloeien naar de nieuwspagina om zo dmv. een Repeater een lijst met de laatste nieuwsitems te laten zien (met samenvatting ipv volledige body), of (afhankelijk van de result set) de volledige inhoud van een enkel nieuwsbericht.
Hiervoor heb ik een class TvrNieuwsBericht:
Visual Basic .NET:
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
| Public Class TvrNieuwsBericht Public _Id As Integer Public _Titel As String Public _Datum As Date Public _Samenvatting As String Public _Inhoud As String Public Readonly Property Id As Integer Get Return _Id End Get End Property Public Readonly Property Titel As String Get Return _Titel End Get End Property Public Readonly Property Datum As Date Get Return _Datum End Get End Property Public Readonly Property Samenvatting As String Get Return _Samenvatting End Get End Property Public Readonly Property Inhoud As String Get Return _Inhoud End Get End Property End Class |
en een class TvrNieuwsArchief die een arraylist inherit
Visual Basic .NET:
1
2
3
4
5
6
7
| Public Class TvrNieuwsArchief Inherits ArrayList Public Sub New() End Sub End Class |
(hij lijkt zo een beetje nutteloos, maar het is de bedoeling dat hier nog meer functionaliteit bijkomt).
Mijn class TvrNieuwsDb haalt aan de hand van een parameter danwel een lijst van nieuwsberichten, danwel een enkel nieuwsbericht op, en returned een TvrNieuwsArchief met TvrNieuwsBericht -en erin.
Het lukt perfect om TvrNieuwsArchief te binden aan een Datagrid (met autogeneratecolumns aan) maar bij een Repeater geeft ie een error.
In de class browser van de ASP.Net Web Matrix zag ik dat elke webcontrol die ITemplate implementeert, de Databind method afkomstig van System.Web.Control override't (hoe zeg je dat in goed Nederlands?
Op MSDN nog wel een artikel over het ontwerpen van een control die ITemplate implementeert, maar niet hoe je daar een custom class in een arraylist aan kunt binden.
Dus mijn vraag: wat moet ik doen om mijn custom class in de arraylist te binden aan een control die ITemplate implementeert? Bvd.
[edit]
Bij het binden aan een repeater krijg ik de volgende exception:
System.MissingMemberException: No default member found for type 'TvrNieuwsBericht'
[ Voor 3% gewijzigd door Not Pingu op 02-08-2004 20:34 ]
Certified smart block developer op de agile darkchain stack. PM voor info.