How can I format data coming from a DataBinder.Eval statement in an ASPX page?
For example, I want to display the published date of the news items in a particular format in the homepage. I’m using the ASP.NET 2.0 Repeater control to show the list of news items.
The code for this goes like this:
<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>
Is there a way I could call a custom method with the DataBinder.Eval value as its parameter (something like below)?
<asp:Label ID='lblNewsDate' runat='server' Text='<%# GetDateInHomepageFormat(DataBinder.Eval(Container.DataItem, 'publishedDate')) )%>'></asp:Label>
If yes, then where do I write the GetDateInHomepageFormat method? I tried out in the code behind page but got a run time error? If this is not possible, is there a way to do inline formatting?
There is an optional overload for DataBinder.Eval to supply formatting:
The format parameter is a String value, using the value placeholder replacement syntax (called composite formatting) like this: