如何格式化来自DataBinder的数据.ASPX页面中的Eval语句?

例如,我希望在主页中以特定格式显示新闻项目的发布日期.我使用ASP.NET2.0 Repeater控件来显示新闻项目列表.

代码如下:

<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>

是否可以使用DataBinder.eval值作为参数调用自定义方法(如下所示)?

<asp:Label ID="lblNewsDate" runat="server" Text='<%# GetDateInHomepageFormat(DataBinder.Eval(Container.DataItem, "publishedDate")) )%>'></asp:Label>

如果是,那么我应该在哪里编写GetDateInHomepageFormat方法?我在代码隐藏页面中try 了一下,但是得到了一个运行时错误? 如果这是不可能的,有没有办法进行内联格式化?

推荐答案

DataBinder.Eval有一个可选的重载以提供格式设置:

<%# DataBinder.Eval(Container.DataItem, "expression"[, "format"]) %>

format参数是一个字符串值,使用值占位符替换语法(称为复合格式),如下所示:

<asp:Label id="lblNewsDate" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "publishedDate", "{0:dddd d MMMM}") %>'</label>

Asp.net相关问答推荐

缓存httpmessage内容

JWT 和 Google 在 Razor 页面中进行身份验证和授权

有人可以解释一下这个Eager 加载示例吗?

从数据库中检索数据的最快方法

如何使用 json 将复杂类型传递给 ASP.NET MVC 控制器

为什么我不能在 ASP.net MVC 中使用服务器控件?

无法使用单例Microsoft.AspNetCore.Hosting.Internal.HostedServiceExecutor中的范围服务MyDbContext

上传时验证大文件

如何在 ASP.NET 下拉列表中添加选项组?

IIS 10 上的 ASP.NET Core 404 错误

如何在 IIS 7.5 上使用 ASP.NET 表单身份验证保护静态文件?

oAuth ASP.NET 成员资格提供程序

当用户在文本框中按 Enter 键时执行按钮单击事件

ASP.NET MVC 和 httpRuntime executionTimeout

如何在 asp.net 中实现Access-Control-Allow-Origin标头

为什么 Controls 集合不提供所有 IEnumerable 方法?

DropDownList 的 SelectedValue 与 SelectedItem.Value

为什么 IFormFile 显示为空,我该如何解决?

如何修复 ASP.NET 错误文件 'nnn.aspx' 尚未预编译,无法请求.?

MVC4 中 Global.asax.cs 页面中的问题