我正在尝试调用jqGrid的setGridWidth函数,但是我收到了错误:
Object [object Object]没有方法'setGridWidth'
我确信这是愚蠢的。这是显示网格的代码(很好),然后尝试调整它的大小。
$("#jqGridElement").jqGrid({
datastr: tableSrc,
jsonReader: { repeatitems: false },
datatype: "jsonstring",
colNames: ['title', 'subtitle'],
colModel: [
{ name: 'title', index: 'title', width: 55 },
{ name: 'subtitle', index: 'subtitle'}],
height: 'auto',
gridview: true
});
$("#jqGridElement").setGridWidth(600);'
修改
我也试过了:
var gridObj = $("#jqGridElement").jqGrid({ datastr: tableSrc, .......
gridObj.setGridWidth(300);
相同的结果
答案 0 :(得分:8)
我想你像我上次演示时那样设置$.jgrid.no_legacy_api = true;
。
jqGrid的“标准”(遗留API)代码设置了jQuery的许多方法扩展。使用许多其他jQuery插件时很危险。名称冲突的可能性增加了。因此建议使用“新样式”jqGrid API。如果是setGridWidth
方法,您应该使用
$("#jqGridElement").jqGrid('setGridWidth', 600);
而不是
$("#jqGridElement").setGridWidth(600);
一个小小的一般性评论:我建议您将gridObj
定义为
var gridObj = $("#jqGridElement");
gridObj.jqGrid({ datastr: tableSrc,...
而不是
var gridObj = $("#jqGridElement").jqGrid({ datastr: tableSrc,...
优点是gridObj
的值将在调用$("#jqGridElement").jqGrid
之前设置,您可以在任何gridObj
事件中使用安全jqGrid
。例如,您可以在gridObj
事件中使用loadComplete
变量。如果您现在使用它的方式使用,gridObj
变量在undefined
事件的第一次使用时可以是loadComplete
。