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



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

提前感谢!

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

如果使用本地数据,则可以使用 sorttype 选项来确定数据行的排序方式。排序基于单元格的实际值;您可以自由使用自定义格式化程序来执行所需的任何格式设置。

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

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

这有帮助吗?

<小时 /> 更新

要从自定义格式化程序函数调用日期格式化程序,首先需要在colmodel中设置适当的选项:

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

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

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

以上应该有效,尽管我没有测试过。请让我知道它是怎么回事...

最新更新