dojox.grid.DataGrid自定义排序方法?

发布于 2024-09-28 17:05:03 字数 802 浏览 2 评论 0原文

我有一个 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 字符串,并为表列提供自定义格式化程序?

有人可以帮忙吗?

谢谢 杰夫·波特

I have a dojox.grid.DataGrid, and one of the columns has date data in it. e.g.

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

When I click the heading and sort the column, I get this...

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

It has sorted on the String value, not sorting it as a date value, hence the 19th gets misplaced.

I'd like to have a custom sorter method, or someway to tell the grid about the data type that it renders.

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>

The alternative is to find someway to encode the date into the JSON string, and have a custom formatter for the table column?

Can anyone help?

Thanks
Jeff Porter

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苏别ゝ 2024-10-05 17:05:03

我已更改 JSON 以传递 dataTime long 值,而不是格式化的日期字符串。

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

它有效!

是的!!

I've changed the JSON to pass over the dataTime long value, not the formatted date String.

Then I've changed the dojox.grid.DataGrid to have a custom formatter for the date column.

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

and it works!!!

yea!!

£冰雨忧蓝° 2024-10-05 17:05:03

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

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

它具有文化中立性,并且使用纯文本排序正确排序。

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

Best practice with JSON is to use ISO dates

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

It's culturally neutral and sorts properly using plain text sorting.

With dojox.grid, you can then declare a formatter that translates this to a Date object, then generates a culturally appropriate representation of the date for display.

七秒鱼° 2024-10-05 17:05:03

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

{fieldname: compareFunction} 

You can also give comparatorMap parameter for your store.

{fieldname: compareFunction} 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文