我有一个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

它已经对字符串值进行排序,而不是将其排序为日期值,因此19th放错了位置。

我想使用一种自定义分类器方法,或者在某种程度上告诉网格有关其呈现的数据类型。

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字符串中的日期,并为表列有一个自定义格式化器?

谁能帮忙?

感谢杰夫·波特

有帮助吗?

解决方案

我更改了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"});

它有效!!!

是的!!

其他提示

JSON的最佳实践是使用ISO日期

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

它在文化上是中性的,并使用纯文本排序正确地进行了分类。

使用Dojox.Grid,您可以声明将其转换为日期对象的格式化器,然后生成对显示日期的文化适当表示。

您还可以为您的比较参数提供 店铺.

{fieldname: compareFunction} 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top