我正在使用free-jqgrid 4.15.6。 我正在使用内置的货币格式化程序,可以完美格式化数字。 我在格式选项中使用前缀:“ $”,defaultValue:”。
第一次加载网格时,货币列为空的行不会在网格中显示应有的格式。
但是,在进行内联编辑后,如果没有在编辑控件中输入任何内容(表示该控件未输入任何值),则在编辑后,预定义的格式设置程序将在单元格中显示“ $”,而不是根据需要显示空白。
查看源代码free-jqgrid的代码库,我发现此函数用于设置格式化的显示:
TextResponse
我在此函数的开头添加了一个条件测试,如果要格式化的值为空字符串,则强制jqgrid不使用货币选项进行格式化。
var insertPrefixAndSuffix = function (sOutput, opts) {
// Prepend prefix
sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
// Append suffix
return (opts.suffix) ? sOutput + opts.suffix : sOutput;
},
但是,此编辑虽然对我有用,但不是完成此工作的正确方法。我知道我应该改为扩展jqGrid预定义的当前formatter对象,或者甚至是jQuery formatter对象,但是我的所有努力都失败了。
有人可以告诉我如何添加此条件代码逻辑,以便使free-jqgrid源保持不变但覆盖jqgrid的预定义货币格式化程序吗?
答案 0 :(得分:0)
我认为最好定义自己的自定义格式化程序,而不是扩展现有的格式化程序。 Guriddo jqGrid is described here
中的自定义格式化程序的定义在free-jqGrid中应该类似。
重要的是,您还需要定义自定义的 unformat 函数。只需查看提供的文档即可。
Here,您可以确切地看到您的情况。