2010-10-19 93 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}