我有一个自动生成列的gridview。其中一列是日期字段。 不知何故,我无法对日期字段进行排序。它被解释为一个字符串。
数据来自数据库。那里的数据类型是在datetime上设置的。
这是aspx文件中的代码:
<asp:BoundField DataField="date" HeaderText="date" SortExpression="date" DataFormatString="{0:dd/MM/yyyy}" HtmlEncode="false"/>
我在这里做错了什么?
答案 0 :(得分:5)
我意识到这是一篇相对较老的帖子,但我自己也在寻找解决方案。我想出来了。
如果Date
被填充为字符串,那么您需要确保它不是。要执行此操作为DataTable
创建表格数据,并在添加数据时使用:
dt.Columns.Add("DateTime", System.Type.GetType("System.DateTime"));
按照您的意愿对日期列进行排序。
答案 1 :(得分:0)
格式化值时(无论数据类型是什么),结果都是String。对结果的任何操作(例如排序)都使用String。
您应该直接在数据库端对Gridview的数据源进行排序。