¿Cómo puedo formatear datos provenientes de una declaración DataBinder.Eval en una página ASPX?Formateo de datos de DataBinder.Eval
Por ejemplo, quiero mostrar la fecha de publicación de las noticias en un formato particular en la página de inicio. Estoy usando el control ASP.NET 2.0 Repeater para mostrar la lista de noticias.
El código para esta dice así:
<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>
¿Hay alguna manera de que pudiera llamar a un método personalizado con el valor DataBinder.Eval como parámetro (algo así como más adelante)?
<asp:Label ID="lblNewsDate" runat="server" Text='<%# GetDateInHomepageFormat(DataBinder.Eval(Container.DataItem, "publishedDate")))%>'></asp:Label>
En caso afirmativo, ¿dónde debo escribir el método GetDateInHomepageFormat? Probé en el código detrás de la página, pero obtuve un error de tiempo de ejecución? Si esto no es posible, ¿hay alguna forma de hacer el formateo en línea?
gran respuesta ... también vale la pena añadir este enlace f o todo el C# String Format para DateTime en http://www.csharp-examples.net/string-format-datetime/ – naveen
Buena respuesta, pero solo quiero señalar que falta un '}' y un extra ' ] 'al final de la expresión de formato en el ejemplo de etiqueta arriba. Debería ser: ..., "{0: dddd d MMMM}")%> ' – PhillFox
@PhillFox Buena captura. Gracias, lo arreglé – DOK