2009-03-23 15 views
0

Wenn ich die Dateien eines Ordners mit einem Gridview binden möchten, kann ich dies nur tun:Bind Repeater DirectoryInfo.GetFiles

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

... Und diese asp.net

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

... Aber wenn ich es an einen Repeater anstatt binden wollen, würde ich denken, ich den Dateinamen wie folgt darstellen könnte:

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

... Aber das wird mir den Fehler "Für den Typ 'FileInfo' wurde kein Standardelement gefunden."

Was ist zu tun?

Antwort

5

Versuchen mit:

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

... die Frage Schreiben mein Problem hier zu erklären, führen Sie mir Ideen zu ein paar mehr für die richtige Antwort auf Google.

Anscheinend muss ich nur Benutzer Databinder.eval ... Und dann funktioniert es wie ein Charme.

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

Nun, zumindest die Antworten sind hier für zukünftige Referenz. ;)

+0

Wie Freddy oben gesagt, können Sie <% # Eval ("Name")%> als Abkürzung für <% # DataBinder.Eval (Container.DataItem, "Name")%> – Charlino

+0

Yeah, Freedy geschrieben while while Ich tippte, also sah ich seine Antwort erst, nachdem ich "Post" gedrückt hatte. ;) – Kjensen