VB .NET: Binding custom IList to GridView
Posted on 2008-06-25
When I started playing with this earlier today it looked like such a simple thing. Except I still can't get it to work. There's a lot of information around about doing this, I seem to find the bits which are either in C# or I just hear a whooshing sound as things go over my head (the latter being preceded by a glazed expression).
Ah well... hopefully I'm just missing something or my syntax is wrong.
I have an IList defined like this:
Public ListOfStuff As New List(Of BitsOfStuff)
BitsOfStuff is a Structure defined like this:
Public Structure BitsOfStuff
Dim GreenStuff As String
Dim BlueStuff As String
In my sample code there are two members in BitsOfStuff. I can evaluate and display them if I use traditional looping type statements.
I was vaguely (very vaguely) under the impression I could bind that IList to a GridView control with:
SomeGridView.DataSource = ListOfStuff
It doesn't complain at me, but I can't get it to display anything.
So far I've tried:
<asp:BoundField DataField="GreenStuff" HeaderText="Green Stuff" />
But it tells me GreenStuff doesn't exist.
I've also tried (and completely failed) to use a number of different statements within a TemplateField.
<asp:TemplateField HeaderText="Blue Stuff">
<%# DataBinder.Eval(BitsOfStuff, "DataItem.BlueStuff") %>
Is it something really simple? Or am I just doing it completely wrong?
Thank you in advance.