我有一个 jqgrid,它有一个自定义格式化程序到“column1”。我需要将“column1”作为日期进行排序。我知道我可以给出“格式化程序:日期”,如果我给出这个,我的自定义格式化程序就不起作用。我们可以有 2 个格式化程序还是有其他选择?
提前致谢!
最佳答案
不,每个字段只能有一个格式化程序,尽管自定义格式化程序可以执行任何操作,包括根据基础数据的值调用多个格式化程序。无论如何,格式化程序用于控制数据的显示方式,但不应影响行的排序方式。
如果您使用的是本地数据,您可以使用 sorttype
选项来确定如何对一行数据进行排序。排序是根据单元格的实际值;您可以自由使用自定义格式化程序来执行所需的任何格式化。
或者,如果您在服务器端进行排序,我认为您仍然可以使用相同的方法。只需定义您需要的任何自定义格式化程序,然后使用列的基础日期值进行排序。
您还应该知道有一个 unformat
使用自定义格式化程序时可用于检索原始数据的选项。我认为您在这里不需要它,但我想提一下,以防万一您需要使用它。
这些帮助有用?
更新
要从自定义格式化程序函数调用日期格式化程序,您首先需要在 colmodel
中设置适当的选项。 :
formatoptions: { srcformat:'m/d/Y', newformat:'ShortDate' },
然后,您可以像任何其他函数一样从自定义格式化程序中调用日期格式化程序:
function myFormatter (cellvalue, options, rowObject) {
return $.fn.fmatter.date(cellvalue, options, rowObject);
}
以上应该有效,虽然我还没有测试过。请让我知道它是怎么回事...
关于jqgrid - 我们可以在 jqgrid colModel 中有 2 个格式化程序选项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080552/