2

我正在尝试调用 jqGrid 的 setGridWidth 函数,但出现错误:

对象 [对象对象] 没有方法“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);

结果相同

4

1 回答 1

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中使用安全。例如,您可以在事件中使用变量。如果以您现在使用的方式使用它,则变量可以在事件的第一次使用时使用。gridObjjqGridgridObjloadCompletegridObjundefinedloadComplete

于 2011-08-31T16:57:45.867 回答