我在Gridview(ASP.NET web应用程序)中有一个DateTime列,我想只显示日期部分。是否有一个DataformatString会给予我像'2023.07.27'这样的输出?我试过了
DataFormatString="{0:yyyy.MM.dd}"
字符串但还是显示了时间部分先谢谢你了。
thigvfpy1#
您发布的DataFormatString看起来正确。这表示此处的数据源列不是SQL Server中的DateTime列。或者,在SQL视图或数据源中的某个位置,datetime列被(或已经)转换为字符串。如果日期时间列被更改为字符串,“怎么会”?然后,您可以尝试将它转换回日期时间,然后格式化该日期时间。您必须从GridView中删除BoundField,然后采用模板化的列,例如:
<asp:TemplateField> <ItemTemplate> <asp:Label ID="lblBook" runat="server" Text='<%# Eval("BookingDate").ToString() == "" ? "" : Convert.ToDateTime(Eval("BookingDate")).ToString("yyyy.MM.dd") %>'> </asp:Label> </ItemTemplate> </asp:TemplateField>
字符串但是,最好是修复有问题的数据源。我会仔细检查该列,因为如果您向GridView提供了DateTime列,那么您发布的格式示例应该可以工作。也许您需要提供额外的代码和标记,因为目前我们还没有足够的信息。
1条答案
按热度按时间thigvfpy1#
您发布的DataFormatString看起来正确。
这表示此处的数据源列不是SQL Server中的DateTime列。或者,在SQL视图或数据源中的某个位置,datetime列被(或已经)转换为字符串。
如果日期时间列被更改为字符串,“怎么会”?
然后,您可以尝试将它转换回日期时间,然后格式化该日期时间。
您必须从GridView中删除BoundField,然后采用模板化的列,例如:
字符串
但是,最好是修复有问题的数据源。我会仔细检查该列,因为如果您向GridView提供了DateTime列,那么您发布的格式示例应该可以工作。
也许您需要提供额外的代码和标记,因为目前我们还没有足够的信息。