jqGrid:空自定义格式化程序

时间:2013-11-22 19:28:58

标签: jquery jqgrid null

我想用'NULL'替换网格中的空白值。我已经读过,在jqGrid中,数据中的空值默认显示为空单元格。根据特殊要求,我需要将这些空白值格式化为“NULL”。

我发现这个相关的post尝试相反 - 用空值替换'NULL'。如果单元格值是undefined或isNull,我使用该代码将cellvalue设置为'NULL'而不是''。但是当我运行代码时,网格永远不会加载。我只是得到“loading ...”消息框,它从不加载任何数据。

以下是我使用的代码:

var nullFormatter = function(cellvalue, options, rowObject) {
    if(cellvalue === undefined || isNull(cellvalue)) {
        cellvalue = 'NULL';
    }
    return cellvalue;
}


$("#grid").jqGrid({
    ....
    colModel: [{
        label: 'Name',
        name:'name',
        index:'name',
        formatter:nullFormatter
    }, {
        label: 'Next Column',
        name:'nextCol',
        index:'nextCol',
        formatter: nullFormatter
    }, ...],
    ....
}

提前致谢。

3 个答案:

答案 0 :(得分:0)

当jQGrid为其中一个单元格收到null值时,它实际上将HTML实体: 放在单元格中。

因此,这是您更新的自定义格式化程序功能应如下所示:

var nullFormatter = function(cellvalue, options, rowObject) {
    // if cellvalue is   OR a single space
    if(cellvalue == " " || cellvalue == " ") {
        cellvalue = 'NULL';
    }
    return cellvalue;
}

答案 1 :(得分:0)

您可以尝试在if中添加一个条件来检查该值是否等于n#34; null"好像它是这样的字符串:

var nullFormatter = function(cellvalue, options, rowObject) {
    if(cellvalue === undefined || isNull(cellvalue) || cellvalue == 'null') {
        cellvalue = 'NULL';
    }
    return cellvalue;
}

答案 2 :(得分:0)

请使用此代码。它的工作..似乎" isNull(cellvalue)"功能不起作用。而不是这个  var nullFormatter = function(cellvalue,options,rowObject){},  尝试函数nullFormatter(cellvalue,options,rowObject){



  function nullFormatter(cellvalue, options, rowObject) {
        if (cellvalue === undefined || cellvalue === 'null' || cellvalue === 'NULL' || cellvalue === null) {
            cellvalue = '-';
        }

        return cellvalue;
    }
    
    
   colModel:[ { name: 'taskStatus', index: 'taskStatus', template: gridTextareaTemplate, formatter: nullFormatter }]