1

我的数据库中有一个日期列,它不是日期时间,因此这些值没有附加时间。

但是,当我将SQLDataSource拖放到我的页面上并将其绑定dropdownlist以显示日期时,它会自动添加12:00:00 AM.

我知道它为什么会这样,但我不知道如何摆脱它。我需要从代码隐藏中绑定它吗?

有一个简单的解决方法吗?

4

4 回答 4

2

设置 DropDownList.DataTextFormatString。

<asp:DropDownList
id="datesList"
runat="server"
dataTextFormatString="{0:dd/MM/yyyy}"/>

然后在 DataBinding 之后,您的控件将应用正确的格式:

于 2013-07-19T07:23:06.537 回答
1

将格式添加到字段或列定义。例如网格视图:

<asp:boundfield datafield="Your_Date_Column" dataformatstring="{0:MMMM d, yyyy}" htmlencode="false" />

顺便说一句,其他方法是使用 ViewModel - 仅用于显示数据的类。在这个类中,不需要使用 DateTime 或其他数据类型:只有字符串。例如,您可以在此处定义一些显示默认值:如果值为 null,则显示文本“未定义”或您需要的内容。在某些情况下,这种方法使您可以集中点准备数据以供显示。

于 2013-07-19T07:21:43.553 回答
1

你能显示你的 sql 查询吗?它可能有用吗?你是否使用 convert(varchar,date ,103) 方法来查询

于 2013-07-19T07:23:03.767 回答
0

C# 没有日期数据类型,尽管来自 sql(date) 数据类型的值被转换为 c# 中的日期时间字段。因此,最好使用 convert(varchar,date ,103) 将日期转换为 sql 中的 nvarchar,尽管 C# 将其视为字符串。

于 2013-07-19T07:51:50.850 回答