ASP.NET GridView无法对作为字符串传递的Date进行排序

时间:2012-01-29 13:19:04

标签: sorting date gridview

您好我正在构建一个具有AutoGenerateColumns = True的网格视图的网站,我遇到的问题是使用数据视图的排序条件无法正常工作。如果我已在gridview上显示以下记录:

  • 名称地址日期(MM / DD / YYYY)
  • Julio XYZ Australia 12/25/2010
  • David 1234新西兰12/26/2010
  • Erika 5555 Singapore 12/14/2011

如果我按照这种方式进行排序:

Dim dt As DataTable = Me.GetDataTable(Me.GetQuery(Sentence, params))
Dim dv As DataView = dt.DefaultView
dv.Sort = SortExpression & " " & SortDirection
gv.DataSource = dv
gv.DataBind()

网格中的结果是:

  • 名称地址日期(MM / DD / YYYY)

  • Erika 5555 Singapore 12/14/2011

  • Julio XYZ Australia 12/25/2010
  • David 1234新西兰12/26/2010

所以问题似乎是排序只考虑日期的一部分而只考虑前五个字符而不是整个字符串。

SortExpression的值是Date的ColumnName,数据源中的是CallDate,SorDirection值是ASC

Me.GetDataTable(Me.GetQuery(Sentence,paramas))只是用数据库中的记录填充数据表的一种方法。

另一件事,遗憾的是我不能改变日期的格式,因为这是一种商业要求,也是因为项目的预算,我不允许使用第三方控制。 : - (

提前感谢任何想法。

1 个答案:

答案 0 :(得分:0)

首先,我想确认您的日期是否为DateTime类型,如果是,

请尝试如下所示,希望这些能帮到你。

                Dim dt As DataTable = Me.GetDataTable(Me.GetQuery(Sentence, params))
                dt.DefaultView.Sort = "Date ASC" ''Sort with Asc.
                gv.DataSource = dt
                gv.DataBind()