【问题标题】:asp:boundfield dataformatstring not workingasp:boundfield 数据格式字符串不起作用
【发布时间】:2015-09-01 05:03:27
【问题描述】:

我正在开发一个 vb.net Web 应用程序,我正在显示一个 Gridview,其中包含包含日期时间的行,数据来自数据库。在我的 aspx 文件中,在我的 asp:boundfield 中,我试图将日期格式(目前是 mm/dd/yyyy hh:mm:ss)更改为“dd MMM yyyy”(没有时间),我尝试使用dataformatstring 和 HtmlEncode="True/False" (两者)但它仍然不会更改 GridView 中的日期格式。代码如下图-

<asp:BoundField DataField="STF_JOINED" HeaderText="Joined" SortExpression="STF_JOINED" HtmlEncode="False" DataFormatString = "{0:d}" ReadOnly="True">

在上面的代码中,我尝试暂时将日期格式化为shortdate,但没有奏效。我仍然希望日期格式为“dd MMM yyyy”格式。

我已经尝试了一些来自 stackoverflow 的解决方案,但它们似乎都不适合我。有人可以通过提供一个小示例代码告诉我我做错了什么或我应该做什么。

【问题讨论】:

    标签: vb.net datetime


    【解决方案1】:

    你根本不需要HtmlEncode。

    对于DataFormatString,您必须使用例如{0:dd MM yyyy} 或{0:dd.MM.yyyy},因为您的数据库字段数据类型是datetime 而不是date(其中dd 代表日,MM 月和@ 987654330@ 年。注意MM,如果你写mm 它代表分钟)。

    <asp:BoundField DataField="STF_JOINED" HeaderText="Joined" SortExpression="STF_JOINED" DataFormatString = "{0:dd MM yyyy}" ReadOnly="True">
    

    经过测试并且可以正常工作。

    您可以在此处阅读有关数据格式字符串的更多信息:BoundField.DataFormatString Property

    您可以在此处查看标准和自定义格式字符串的示例(每个表格下的链接)。

    【讨论】:

    • nelek,我刚刚尝试将 DataFormatString = "{0:dd MM yyyy}" 添加到我的边界域,但没有成功。也只是为了确保我从头开始为此制作了一个普通的香草页面。我想在这一点上问我是否需要在 VS2012 或 Windows 中进行任何其他设置才能使其正常工作。您还可以显示一个完整的 aspx 页面代码,以便我可以与我的页面进行交叉验证。
    • nelek,我发现了为什么我无法更改数据格式。似乎有人在该特定数据库表中将列类型更改为 varchar。将列恢复为日期时间类型后,我能够使数据格式正常工作。谢谢你的帮助....
    猜你喜欢
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    相关资源
    最近更新 更多