【问题标题】:free-jqgrid pre-defined currency formatter modfree-jqgrid 预定义货币格式化程序 mod
【发布时间】: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


    【解决方案1】:

    我认为最好定义自己的自定义格式化程序,而不是扩展现有的格式化程序。 Guriddo jqGrid is described here中自定义格式化程序的定义

    在free-jqGrid中应该是类似的。

    这里需要注意的是,您还需要定义一个自定义 unformat 函数。只需查看提供的文档即可。

    Here 你可以看到你的情况。

    【讨论】:

    • 谢谢@tony-tomov。我只是认为最好使用预定义的货币格式化程序,因为它确实工作得很好——遵守语言环境。如果有一种方法可以连接到预定义的版本并让它忽略空白值,从而跳过对它们应用格式设置,那就太好了。但是知道你是 jqGrid 存在的主要原因,我会接受你的建议。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2012-05-31
    相关资源
    最近更新 更多