tags:

views:

432

answers:

2

Hi

If I want to bind the files of a folder to a gridview, I can just do this:

GridView1.DataSource = New DirectoryInfo("C:\MyPix").GetFiles
GridView1.DataBind()

...And this asp.net

<asp:GridView ID="GridView1" runat="server">
 <Columns>
  <asp:BoundField DataField="Name" />
 </Columns>
</asp:GridView>

...But if I want to bind it to a repeater in stead, I would think I could display the filename like this:

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><%#Container.DataItem("Name")%></ItemTemplate>
</asp:Repeater>

...But that gets me the error "No default member found for type 'FileInfo'."

What to do?

+4  A: 

Try with:

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><%#Eval("Name")%></ItemTemplate>
</asp:Repeater>
eglasius
A: 

...Writing the question to explain my problem here, lead me to a couple more ideas to google for the right answer.

Apparently I just need to User Databinder.eval... And then it works like a charm.

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate><%#DataBinder.Eval(Container.DataItem, "Name")%></ItemTemplate>
</asp:Repeater>

Well, at least the answes is here for future reference. ;)

Kjensen
Like Freddy said above, you can use <%# Eval("Name") %> as shorthand for <%# DataBinder.Eval(Container.DataItem, "Name") %>
Charlino
Yeah, Freedy posted while I was typing, so I did not see his answer until after I pressed "post". ;)
Kjensen