代码之家  ›  专栏  ›  技术社区  ›  raouf

当jqGrid单元格中出现NaN时为空

  •  6
  • raouf  · 技术社区  · 16 年前

    如何在jqGrid单元格中设置空白而不是NaN?使用格式化程序?有没有一个例子?

    3 回复  |  直到 13 年前
        1
  •  6
  •   Chris Justin Ethier    14 年前

    这是一个非常古老的问题,但是jqGrid文档并没有一个简单的答案,当我在寻找相同的答案时,这个问题首先出现在谷歌搜索结果中。

    当使用预定义的格式化程序选项显示整数时,我能够显示一个空白单元格,而不是0。使用以下代码:

    { name: 'Quantity', formatter: 'integer', formatoptions: { defaultValue: ''} }
    

    这个 defaultValue 只是设置为空白。

        2
  •  1
  •   Stephen Fuhry Bobby    16 年前

    我不会重写自定义格式化程序——而是重写它(或创建一个新的格式化程序)!这样,当jQgrid的新版本发布时,您就不会覆盖自定义包装器。

    例如,如果值为0,我的用户不想看到它,所以我这样做:

    $.fn.fmatter.currency = function (cellval, opts) {
        if (cellval == 0) {
            return '';
        }
        var op = $.extend({},opts.currency);
        if(!isUndefined(opts.colModel.formatoptions)) {
            op = $.extend({},op,opts.colModel.formatoptions);
        }
        if(isEmpty(cellval)) {
            return op.defaultValue;
        }
        return $.fmatter.util.NumberFormat(cellval,op);
    };
    

    但我也可以称之为:

    $.fn.fmatter.currencyNoZero
    

    在你的情况下,我会这样做:

    $.fn.fmatter.currency = function (cellval, opts) {
        if (cellval == null) {
            return '';
        }
        var op = $.extend({},opts.currency);
        if(!isUndefined(opts.colModel.formatoptions)) {
            op = $.extend({},op,opts.colModel.formatoptions);
        }
        if(isEmpty(cellval)) {
            return op.defaultValue;
        }
        return $.fmatter.util.NumberFormat(cellval,op);
    };
    
        3
  •  0
  •   Justin Ethier    16 年前

    在服务器上,在以XML/JSON/任何形式返回数据之前,请尝试将DBNull值设置为空字符串。

    或者,如果可以将空值显示为0,则可以按照以下方式修改SQL:

    SELECT IsNull(my_amount, 0)
    
    推荐文章