如何在gridview中对日期列进行排序?

我正在使用ASP.NET和C#。这是我的代码。

private const string ASCENDING = "ASC"; private const string DESCENDING = "DESC"; public SortDirection GridViewSortDirection { get { if (ViewState["sortDirection"] == null) ViewState["sortDirection"] = SortDirection.Ascending; return (SortDirection) ViewState["sortDirection"]; } set { ViewState["sortDirection"] = value; } } public string SortExpression { get { if (ViewState["sortExpression"] == null) ViewState["sortExpression"] = "JobNumber"; return ViewState["sortExpression"] as string; } set { ViewState["sortExpression"] = value; } } protected void OnSorting(object sender, GridViewSortEventArgs e) { SortExpression = e.SortExpression; if (GridViewSortDirection == SortDirection.Ascending) { GridViewSortDirection = SortDirection.Descending; } else { GridViewSortDirection = SortDirection.Ascending; } BindGrid(); } 

我正在应用所有列的排序和工作正常。 但是对于日期列,它就像这个顺序(dd / mm / yyyy)。

  • 30/11/2012
  • 2012年10月12日
  • 2012年9月10日

      

此列的数据类型是date。

怎么做?我做错了吗?

有两种选择

1.要在SQL Level中排序,这是最好和最合适的方法,将结果结果集绑定到gridview。

2.将DataTable与查询输出绑定并对datatable运行排序,然后将其绑定到gridview。 请记住将数据类型添加到datatable列accTable.Columns.Add("Date",typeof(DateTime));

数据库中此列的数据类型是什么? 它似乎就像一个字符串字段而不是DateTime字段。 如果是这种情况,您需要先修复数据类型,然后才能获得正确的排序顺序,而无需更改gridview上的任何内容。

试着改变