我使用的是free-jqgrid 4.15.6。我正在使用内置的货币格式化程序,它可以完美地格式化数字。我在格式化选项中使用前缀:'$',defaultValue:"。
当网格首次加载时,货币列为空的行在网格中不显示应有的格式。
但是在内联编辑之后,当编辑控件中没有输入任何内容(意味着控件没有输入任何值)时,在编辑之后,预定义的格式化程序会在单元格中显示“$”,而不是根据需要显示空白。
查看源代码免费的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格式化程序对象,但我所有的努力都失败了。
有人能告诉我如何添加这个条件代码逻辑,这样我就可以不修改免费的jqgrid源代码,而是覆盖jqgrid的预定义货币格式化程序吗?
我认为最好定义自己的自定义格式化程序,而不是扩展现有的格式化程序。这里描述了Guriddo jqGrid中自定义格式化程序的定义
它应该类似于free-jqGrid。
这里需要注意的是,您还需要定义一个自定义的unformat函数。只需查看提供的文档即可。
在这里,您可以准确地看到您的案例。
在我当前的项目中,我将货币值存储为表示美分数的。但是,当用户在文本字段中输入此值时,他们很可能希望将其输入为十进制值。此外,如果用户不手动输入,我想在前面加上一个美元符号。我如何利用为我完成大部分工作?或者是否有其他解决方案使用预先存在的Swing组件,这样我就不必通过手动编码来重新发明轮子?
问题内容: 我正在使用我给定的语言环境获取自定义货币格式。但是,这始终包含我不需要的货币符号,我只想要给定语言环境的正确货币数字格式而没有货币符号。 做一个抛出一个异常.. 问题答案: 以下作品。这有点丑陋,但可以履行合同: 您还可以从货币格式中获取模式,删除货币符号,然后从新模式中重构新格式:
我正在尝试使用函数。 而它应该打印$符号或美元? 我使用linux主机。 谢谢
问题内容: 我需要显示此类货币格式,我们如何显示。 问题答案: 在HTML中 例如 您还可以推荐 https://docs.angularjs.org/api/ng/filter/currency
(版本免费jqgrid 4.13.6) 我有一些datetime列,我将其定义为{…格式化程序:“date”…},没关系。 现在,在某些情况下,根据字段值,我需要使用另一个自定义格式化程序。由于formatter:"date"是jqgrid原生的,我不知道如何解决这种情况。 示例:通常字段值是datetime,例如“2017-04-18 10:06”,这对于格式化程序来说是可以的:“date”。但
在本例中,我们根据美国区域设置和丹麦语区域设置格式化货币。 文件:IOTester.java - 执行上面示例代码,得到以下结果 -