当前位置: 首页 > 知识库问答 >
问题:

free-jqgrid预定义的货币格式化程序mod

欧阳博超
2023-03-14

我使用的是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的预定义货币格式化程序吗?

共有1个答案

冯祺
2023-03-14

我认为最好定义自己的自定义格式化程序,而不是扩展现有的格式化程序。这里描述了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 - 执行上面示例代码,得到以下结果 -