Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting ASP.NET GridView无法对作为字符串传递的日期进行排序_Sorting_Date_Gridview - Fatal编程技术网

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

Sorting ASP.NET GridView无法对作为字符串传递的日期进行排序,sorting,date,gridview,Sorting,Date,Gridview,您好,我正在构建一个站点,该站点的gridview具有AutoGenerateColumns=True,我遇到的问题是使用dataview的排序条件不能正常工作。如果gridview上已显示以下记录: 名称地址日期(年月日) Julio XYZAustralia12/25/2010 David 1234新西兰2010年12月26日 Erika 5555新加坡2011年12月14日 如果我这样做排序: Dim dt As DataTable = Me.GetDataTable(Me.GetQu

您好,我正在构建一个站点,该站点的gridview具有AutoGenerateColumns=True,我遇到的问题是使用dataview的排序条件不能正常工作。如果gridview上已显示以下记录:

  • 名称地址日期(年月日)
  • Julio XYZAustralia12/25/2010
  • David 1234新西兰2010年12月26日
  • Erika 5555新加坡2011年12月14日
如果我这样做排序:

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()
网格中的结果是:

  • 名称地址日期(年月日)

  • Erika 5555新加坡2011年12月14日

  • Julio XYZAustralia12/25/2010
  • David 1234新西兰2010年12月26日
所以问题似乎是排序只考虑了日期的一部分,只考虑了前五个字符,而不是整个字符串

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

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

另一件事,很遗憾,我不能更改日期的格式,因为这是以这种方式呈现的业务要求,而且我不允许使用第三方控制,因为项目预算:-(


感谢您提前提出任何建议。

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

请尝试以下样品,希望这些能帮助你

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

它没有失败排序更正lt。您给了它一个字符串和标准字符串排序2011年12月14日<2010年12月25日。一旦您将其转换为字符串,它就不再是一个日期。要么传入一个日期,然后依靠网格根据运行应用程序的应用程序/用户/计算机的设置对其进行格式化。要么看看是否可以转换回日期在sort表达式中,使用acast或converter谢谢您的回答,但是如果列是自动生成的,我如何告诉网格,该列将是一个日期值和它自己的格式?您说过它是作为字符串传递的,所以问题应该只是找出在哪里完成并作为日期传递。