1

我正在使用 jqGrid 来显示数据,其中某些字段在数据库中可能为空。存在空值时,我收到错误,对象引用未设置为对象的实例。

我添加了将 null 更改为字符串的代码,如下所示,但未显示 jqGrid:

<script type="text/javascript">
      $(document).ready(function () {
        $('#list').jqGrid({
            caption: "MM",
            url: '@Url.Action("GetAll", "Grid")',
            datatype: 'json',
            jsonReader: {
                root: "Rows",
                page: "Page",
                total: "Total",
                records: "Records",
                repeatitems: true,
                id: "Id",
                cell: "RowCells"
            },
            mtype: 'POST',
            colNames: ['Serial'],
            colModel: [
                {
                    name: 'Serial', index: 'Serial', align: 'center', width: 60, formatter: nullformatter
                }
            ],
            pager: $('#pager'),
            rowNum: 10,
            rowList: [10, 20, 50, 100],
            sortname: 'Id',
            sortorder: 'desc',
            viewrecords: true,
            altRows: true,
            shrinkToFit: false,
            width: '1041',
            height: 'auto',
            hidegrid: false,
            direction: "rtl",
            gridview: true,
            rownumbers: true,
            footerrow: true,
            loadComplete: function () {
                $("tr.jqgrow:odd").css("background", "#E0E0E0");
            },
            loadError: function (xhr, st, err) {
                jQuery("#rsperror").html("Type: " + st + "; Response: " + xhr.status + " " + xhr.statusText);
            }
        })
          var nullformatter = function (cellvalue, options, rowobject) {
              alert('cell value==>>' + cellvalue);
              if (cellvalue == undefined || isnull(cellvalue) || cellvalue == 'NULL' || cellvalue.trim().length == 0) {
                  cellvalue = ' ';
              }
              return cellvalue;
          };
    })
</script>
4

2 回答 2

0

如果您使用语法,那么您必须在使用之前var nullformatter = function (cellvalue, options, rowobject) {...}移动 的定义(在使用 来创建网格之前)。您当前的代码使用. 只有当你会使用然后你可以定义下面的用法的功能。nullformatter $('#list').jqGrid({...});formatter: undefinedfunction nullformatter (cellvalue, options, rowobject) {...}

于 2015-04-28T09:21:41.210 回答
0

您可以添加以下条件,。它对我有用。

var nullformatter = function (cellvalue, options, rowobject) {
            if (cellvalue == undefined || isnull(cellvalue) || cellvalue == 'NULL' || cellvalue.trim().length==0)
            { 
              cellvalue = ' '; 
            } 
          return cellvalue;
        }

如果上述条件不起作用,则提醒单元格值。

alert('cell value==>>'+cellvalue);

之后你会纠正它。

或尝试遵循条件

if(null!=cellvalue && cellvalue.length>0){
   return cellvalue;
}else{
        return " ";
 }
于 2015-04-28T08:25:15.007 回答