【发布时间】:2018-12-14 01:50:25
【问题描述】:
我正在使用 free-jqgrid 4.15.6。 我正在使用内置的货币格式化程序,它可以完美地格式化数字。 我在格式选项中使用前缀:'$',defaultValue:''。
第一次加载网格时,货币列为空的行在网格中没有显示应有的格式。
但是在内联编辑之后,当没有任何内容输入到编辑控件中时(意味着控件没有输入值),在编辑之后,预定义的格式化程序会在单元格中显示“$”,而不是根据需要显示为空白。
查看源free-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 不使用货币选项进行格式化。
var insertPrefixAndSuffix = function (sOutput, opts) {
// return empty string if no cellvalue
if(sOutput == '') { return ''; }
// Prepend prefix
sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
// Append suffix
return (opts.suffix) ? sOutput + opts.suffix : sOutput;
},
然而,这个编辑虽然对我有用,但并不是完成这项工作的正确方法。我知道我应该改为扩展 jqGrid 预定义的当前格式化程序对象,甚至可能是 jQuery 格式化程序对象,但我所有的努力都失败了。
谁能告诉我如何添加这个条件代码逻辑,以便我可以保持 free-jqgrid 源不修改但覆盖 jqgrid 的预定义货币格式化程序?
【问题讨论】:
标签: formatting currency free-jqgrid