4

我有一个 jqgrid,它有一个“column1”的自定义格式化程序。我需要将“column1”排序为日期。我知道我可以给出“格式化程序:日期”,如果我给出这个,我的自定义格式化程序不起作用。我们可以有 2 个格式化程序还是有其他选择?

提前致谢!

4

1 回答 1

2

不,每个字段只能有一个格式化程序,尽管自定义格式化程序可以做任何事情,包括根据基础数据的值调用多个格式化程序。无论如何,格式化程序用于控制数据的显示方式,但不应影响行的排序方式。

如果您使用的是本地数据,则可以使用该sorttype选项来确定如何对一行数据进行排序。排序以单元格的实际值为准;您可以自由使用自定义格式化程序来执行所需的任何格式化。

或者,如果您在服务器端进行排序,我认为您仍然可以使用相同的方法。只需定义您需要的任何自定义格式化程序,然后使用列的基础日期值进行排序。


您还应该知道,unformat在使用自定义格式化程序时,有一个选项可用于检索原始数据。我认为您在这里不需要它,但想提一下以防万一您需要使用它。

这些帮助有用?


更新

要从您的自定义格式化程序函数调用日期格式化程序,您首先需要在您的colmodel:

formatoptions: { srcformat:'m/d/Y', newformat:'ShortDate' },

然后,您可以像任何其他函数一样从自定义格式化程序中调用日期格式化程序:

function myFormatter (cellvalue, options, rowObject) {
    return $.fn.fmatter.date(cellvalue, options, rowObject);
}

以上应该可以工作,虽然我没有测试过。请告诉我进展如何...

于 2012-06-18T15:10:06.550 回答