Ik ( eigenlijk een collega
) ben bezig met een WebForm aan het maken en nu moet er hier een tabel gemaakt worden aan de hand van een DataTable.
Dit is natuurlijk vrij eenvoudig te doen door middel van databinding.
Het probleem is nou dat er soms ( afhankelijk van de data ) een extra item tussen gevoegd moet worden.
Ik had dit zelf ook al wel eens gehad alleen dan met een Repeater. Ik dus even snel uitgelegd hoe ik dat gedaan had in de veronderstelling dat het in een DataList wel op dezelfde manier zou gaan. Bij een repeater had ik het op de volgende manier gedaan.
In het ItemDataBound event controleer ik de data en als er een extra item toegevoegd dient te worden doe ik het volgende.
Dit werkt gewoon goed. ( Tuurlijk moet je met postbacks rekening houden dat je hem weer toe moet voegen en dergelijke ).
Als ik dit echter met een DataList doe op dezelfde manier
komt er helemaal geen item bij in de list. Als ik het uitvoer op een lege DataList bijvoorbeeld dan wordt er alleen maar dit in de html gerenderd
Er wordt dus geen tablerow toegevoegd.
Ik heb in de MSDN gezocht bij de datalist en het DataListItem maar ik kan nergens vinden dat je niet zelf Items mag toevoegen.
Dus mijn vraag is: Waarom komt er geen output van de het DataListItem wat ik heb toegevoegd?
Dit is natuurlijk vrij eenvoudig te doen door middel van databinding.
Het probleem is nou dat er soms ( afhankelijk van de data ) een extra item tussen gevoegd moet worden.
Ik had dit zelf ook al wel eens gehad alleen dan met een Repeater. Ik dus even snel uitgelegd hoe ik dat gedaan had in de veronderstelling dat het in een DataList wel op dezelfde manier zou gaan. Bij een repeater had ik het op de volgende manier gedaan.
In het ItemDataBound event controleer ik de data en als er een extra item toegevoegd dient te worden doe ik het volgende.
C#:
1
2
3
| RepeaterItem item = new RepeaterItem( myRepeater.Items.Count, ListItemType.Item ); myRepeater.ItemTemplate.InstantiateIn( item ); myRepeater.Controls.Add( item ); |
Dit werkt gewoon goed. ( Tuurlijk moet je met postbacks rekening houden dat je hem weer toe moet voegen en dergelijke ).
Als ik dit echter met een DataList doe op dezelfde manier
C#:
1
2
3
| DataListItem item = new DataListItem( myDataList.Items.Count, ListItemType.Item ); myDataList.ItemTemplate.InstantiateIn( item ); myDataList.Controls.Add( item ); |
komt er helemaal geen item bij in de list. Als ik het uitvoer op een lege DataList bijvoorbeeld dan wordt er alleen maar dit in de html gerenderd
HTML:
1
2
| <table id="myDataList" cellspacing="0" border="0" style="border-collapse:collapse;"> </table> |
Er wordt dus geen tablerow toegevoegd.
Ik heb in de MSDN gezocht bij de datalist en het DataListItem maar ik kan nergens vinden dat je niet zelf Items mag toevoegen.
Dus mijn vraag is: Waarom komt er geen output van de het DataListItem wat ik heb toegevoegd?
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”