我正在使用jqGrid显示数据,其中某些字段在数据库中可能为null。如果存在空值,则会收到错误,对象引用未设置为对象的实例。
我已经添加了将null更改为string的代码,如下所示,但是没有显示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>
答案 0 :(得分: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 " ";
}
答案 1 :(得分:0)
如果您使用var nullformatter = function (cellvalue, options, rowobject) {...}
语法,那么您必须在使用之前移动nullformatter
的定义(在使用$('#list').jqGrid({...});
创建网格之前)。您当前的代码使用formatter: undefined
。只有当您使用function nullformatter (cellvalue, options, rowobject) {...}
时,您才能定义使用情况下面的函数。