2010-10-19 98 views
2

我有一个dojox.grid.DataGrid,其中一列有日期数据。例如dojox.grid.DataGrid自定义排序方法?

09:01:00 18/10/2010 
09:03:00 18/10/2010 
09:02:00 19/10/2010 

当我点击的标题和排序的列,我得到这个...

09:01:00 18/10/2010 
09:02:00 19/10/2010  
09:03:00 18/10/2010 

它排序的字符串值,而不是选它作为一个日期值,因此获得第19错误的。

我想有一个自定义的分类器方法,或者告诉网格关于它呈现的数据类型。

var rawdataDeltaInfo = '[{'timestamp':'15:27:45 18/10/2010'}]'; 

<table id="gridDeltas" jsId="gridDeltas" dojoType="dojox.grid.DataGrid" store="deltaInfo" clientSort="false" > 
    <thead> 
      <tr> 
       <th field="timestamp" >Create Date</th> 
      </tr> 
    </thead> 
</table> 

另一种方法是找到好歹日期编码成JSON字符串,并有表列自定义格式?

任何人都可以帮忙吗?

感谢 杰夫·波特

回答

3

我已经改变了JSON越过DATATIME长期价值,而不是格式化的日期字符串。

然后我改变了dojox.grid.DataGrid来为日期列设置一个自定义格式器。

dojo.require("dojo.date.locale"); 
formattedString = dojo.date.locale.format(new Date(jsonLongDate), {datePattern: "HH:mm:ss dd/MM/yyyy", selector: "date"}); 

它工作!

是啊!

1

与JSON的最佳做法是使用ISO日期

2010-10-18T09:01:00 
2010-10-18T09:03:00 
2010-10-19T09:02:00 

这是文化中立,合理使用纯文本排序排序。

使用dojox.grid,您可以声明一个格式化程序,将其转换为Date对象,然后生成适合于显示的日期的文化适当表示。

0

您还可以为您的store提供comparatorMap参数。

{fieldname: compareFunction}