我使用的是free-jqgrid 4.15.6。我正在使用内置的货币格式化程序,它可以完美地格式化数字。我在格式选项中使用了前缀:‘$’,defaultValue:'‘。
第一次加载网格时,currency列为空的行在网格中不显示格式。
但是在行内编辑之后,如果编辑控件中没有输入任何内容(意味着控件没有输入值),那么在编辑之后,预定义的格式化程序会在单元格中显示“$”,而不是根据需要显示为空。
查看免费的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预定义的currenct格式化程序对象,或者甚至扩展jQuery格式化程序对象,但是我所做的一切努力都失败了。
谁能告诉我如何添加这个条件代码逻辑,这样我就可以保持免费的jqgrid源代码不变,但覆盖jqgrid的预定义货币格式化程序?
发布于 2018-12-16 21:10:27
我认为定义您自己的自定义格式化程序比扩展现有的格式化程序更好。Guriddo jqGrid is described here中自定义格式化程序的定义
它应该类似于free-jqGrid。
这里需要注意的是,您还需要定义一个自定义的非格式化函数。只需查看提供的文档即可。
Here你可以确切地看到你的案例。
https://stackoverflow.com/questions/53772522
复制相似问题