我有一个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字符串中,并为表列提供自定义格式化程序?
有人能帮上忙吗?
谢谢Jeff Porter
发布于 2010-10-19 18:36:16
我更改了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"});它起作用了!
耶!!
发布于 2010-10-26 08:12:02
使用JSON的最佳实践是使用ISO日期
2010-10-18T09:01:00
2010-10-18T09:03:00
2010-10-19T09:02:00它在文化上是中立的,并使用纯文本排序进行适当的排序。
使用dojox.grid,您可以声明一个格式化程序,该格式化程序将其转换为Date对象,然后生成适合文化的日期表示形式以供显示。
发布于 2010-11-09 23:26:59
您还可以为您的store提供comparatorMap参数。
{fieldname: compareFunction} https://stackoverflow.com/questions/3967214
复制相似问题