我有一个jqgrid,它有一个自定义格式化程序“column1”。我需要将“column1”排序为日期。我知道我可以给“格式化程序:日期”,如果我给它,我的自定义格式化程序不起作用。我们可以有2个格式化板或者还有其他选择吗?
提前致谢!
答案 0 :(得分:2)
不,每个字段只能有一个格式化程序,尽管自定义格式化程序可以执行任何操作,包括根据基础数据的值调用多个格式化程序。在任何情况下,格式化程序都用于控制数据的显示方式,但不应影响行的排序方式。
如果您使用的是本地数据,则可以使用sorttype
选项来确定如何对一行数据进行排序。排序基于细胞的实际值;您可以自由使用自定义格式化程序来执行任何格式化。
或者,如果您正在对服务器端进行排序,我认为您仍然可以使用相同的方法。只需定义所需的任何自定义格式化程序,然后使用列的基础日期值进行排序。
<小时/> 您还应该知道,在使用自定义格式化程序时,可以使用
unformat
选项来检索原始数据。我不认为你在这里需要它,但是想提一下你需要使用它。
这有帮助吗?
<小时/> 更新
要从自定义格式化程序功能调用日期格式化程序,首先需要在colmodel
中设置相应的选项:
formatoptions: { srcformat:'m/d/Y', newformat:'ShortDate' },
然后,您可以在自定义格式化程序中调用日期格式化程序,就像任何其他函数一样:
function myFormatter (cellvalue, options, rowObject) {
return $.fn.fmatter.date(cellvalue, options, rowObject);
}
上述应该可行,但我还没有测试过。请让我知道它是怎么回事......