Wie kann ich Daten formatieren, die von einer DataBinder.Eval-Anweisung in einer ASPX-Seite kommen?Formatieren von DataBinder.Eval-Daten
Zum Beispiel möchte ich das veröffentlichte Datum der Nachrichten in einem bestimmten Format auf der Homepage anzeigen. Ich verwende das ASP.NET 2.0 Repeater-Steuerelement, um die Liste der Nachrichten anzuzeigen.
Der Code dafür lautet:
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1">
<HeaderTemplate><table cellpadding="0" cellspacing="0" width="255"></HeaderTemplate>
<ItemTemplate>
<tr><td >
<a href='/content/latestNews.aspx?id=<%#DataBinder.Eval(Container.DataItem, "id") %>'>
<asp:Label ID="lblNewsTitle" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "title") %>'></asp:Label>
</a>
</td></tr>
<tr><td>
<asp:Label ID="lblNewsDate" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "publishedDate"))%>'></asp:Label>
</td></tr>
</ItemTemplate>
<FooterTemplate></table></FooterTemplate></asp:Repeater>
Gibt es eine Weise, die ich als Parameter (so etwas wie unten) eine eigene Methode mit dem DataBinder.Eval Wert nennen könnte?
<asp:Label ID="lblNewsDate" runat="server" Text='<%# GetDateInHomepageFormat(DataBinder.Eval(Container.DataItem, "publishedDate")))%>'></asp:Label>
Wenn ja, wo schreibe ich dann die Methode GetDateInHomepageFormat? Ich habe es im Code hinter der Seite ausprobiert, aber einen Laufzeitfehler bekommen? Wenn dies nicht möglich ist, gibt es eine Möglichkeit, Inline-Formatierung zu tun?
große Antwort wollen ... auch die Mühe wert, diesen Link f hinzufügen oder das ganze C# String Format für DateTime unter http://www.csharp-examples.net/string-format-datetime/ – naveen
Gute Antwort, aber ich möchte nur darauf hinweisen, dass ein '}' und ein 'Extra' fehlt ] 'am Ende des Formatausdrucks im obigen Label-Beispiel. Es sollte sein: ..., "{0: dddd d MMMM}")%> ' – PhillFox
@PhillFox Guter Fang. Danke, ich habe es behoben. – DOK