2

我正在使用JQGrid并且正在网格中显示 Null,因为它来自 DB。我可以更改查询以返回空白值。

但是我尝试使用 JQGrid 来处理。我如何replace null by blank values在网格中。

我不想向用户显示 NULL 而不是显示空白。

我如何在 JQGrid 中实现这一点?

谢谢

4

2 回答 2

7

处理这个服务器端可能是最好的,但如果你想在 jqGrid 中进行,你可以使用一个自定义格式化程序,将 null 转换为空字符串。(我不确定你是否真的取回了 valuenull或 String "NULL",所以我处理了这两种情况):

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

    return cellvalue;
}

$("#myGridContainer").jqGrid({
    ....
    colModel: [{
        label: 'Name',
        name:'name',
        index:'name',
        formatter:nullFormatter
    }, {
        label: 'Next Column',
        name:'nextCol',
        index:'nextCol',
        formatter: nullFormatter
    }, ...],
    ....
}
于 2013-06-10T12:43:45.827 回答
3

我有同样的问题。

此外,我想jqGrid用千位分隔符和 2 个小数位显示我的数字,但使用默认'number'格式化程序会导致任何空值(来自数据库)显示为“ 0.00”,而不是留空。

$("#tblListOfRecords").jqGrid({
    ...
    colModel: [
      { name: "SomeNumber", formatter: 'number', sorttype: "integer", formatoptions: { decimalPlaces: 2 } }
    ]
    ...

这不是我想要的。

我的解决方案是编写自己的格式化程序:

$("#tblListOfRecords").jqGrid({
    ...
    colModel: [
      { name: "SomeNumber", formatter: formatNumber}
    ]
});

function formatNumber(cellValue, options, rowdata, action) {
    //  Convert a jqGrid number string (eg "1234567.89012") into a thousands-formatted string "1,234,567.89" with 2 decimal places
    if (cellValue == "")
        return "";
    if (cellValue == null || cellValue == 'null')
        return "";

    var number = parseFloat(cellValue).toFixed(2);          //  Give us our number to 2 decimal places
    return number.toLocaleString();                         //  "toLocaleString" adds commas for thousand-separators.
}
于 2015-02-26T11:29:23.330 回答