jqGrid呈现正常,但我无法访问getGridParam,它会抛出
Object不支持属性或方法'jqGrid'
function updateGrid(inmateID) {
$(".loading").show();
var grid = $("#jqGridDiv")[0];
$.ajax({
url: "<%= AdminPath %>WebMethods/WebService1.asmx/GetUsersJSON",
data: '{ webMethodParam: \"' + inmateID + '\" }',
dataType: "text",
type: "POST",
contentType: "application/json; charset=utf-8",
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
$(".loading").hide();
},
success: function (data) {
//debugger;
var tmp1 = $.parseJSON(data);
var ncicList = $.parseJSON(tmp1.d);
grid.addJSONData(ncicList); //works
var data = grid.jqGrid('getGridParam', 'data'); //Object doesn't support property or method 'jqGrid'
$(".loading").hide();
} //end ajax success
}); //end ajax
}
答案 0 :(得分:1)
您的第一个错误存在是因为您尝试使用var data = grid.jqGrid('getGridParam', 'data');
grid
是<table>
元素的DOM而不是jQuery包装器(请参阅var grid = $("#jqGridDiv")[0];
)。您需要使用var data = $(grid).jqGrid('getGridParam', 'data');
。
即使您使用ar data = $(grid).jqGrid('getGridParam', 'data')
,也可以获得空数组[]
。重要的您使用的其他jqGrid选项。您使用的旧版addJSONData
API无法填充本地数据,因此无法填写jqGrid的data
或_index
参数。了解您在网格中使用的datatype
以及是否使用loadonce: true
(如果使用datatype: "json"
),这一点非常重要。