jqGrid-setGridWidth函数

时间:2011-08-31 15:48:12

标签: jquery jquery-plugins jqgrid jqgrid-asp.net

我正在尝试调用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);

相同的结果

1 个答案:

答案 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