我有一个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);
}
以上应该有效,尽管我没有测试过。请让我知道它是怎么回事...