我们可以在jqgrid colModel中有2个格式化程序选项吗?

时间:2012-06-18 09:57:47

标签: jqgrid jqgrid-formatter

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

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

如果您使用的是本地数据,则可以使用sorttype选项来确定如何对一行数据进行排序。排序基于细胞的实际值;您可以自由使用自定义格式化程序来执行任何格式化。

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

<小时/> 您还应该知道,在使用自定义格式化程序时,可以使用unformat选项来检索原始数据。我不认为你在这里需要它,但是想提一下你需要使用它。

这有帮助吗?

<小时/> 更新

要从自定义格式化程序功能调用日期格式化程序,首先需要在colmodel中设置相应的选项:

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

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

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

上述应该可行,但我还没有测试过。请让我知道它是怎么回事......