dojox.grid.datagrid自定义排序方法?
-
09-10-2019 - |
题
我有一个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}
不隶属于 StackOverflow