jqGrid过滤器工具栏 - colModel:对象是null或未定义的问题

时间:2011-08-09 17:38:41

标签: javascript jquery-plugins jqgrid

实际创建过滤器 jqGrid工具栏应该像“3.5中的新功能,集成搜索工具栏”exampledocumentation一样直接。

然而,当我运行第myDataTable.jqGrid('filterToolbar', filterOpts);行时,我总是收到错误“无法获取属性'colModel'的值:对象为null或未定义”在JQuery.jqGrid.src.js的第3613行中,这是:$.each($t.p.colModel,function(i,n) { ..

仅为了记录,jqGrid的版本是4.1.2。网格本身显示/工作正常。

以下是我如何启动网格的代码,我很可能会监督一些非常简单的事情。

    var ft = document.getElementById("myData"); // this is the HTML table element as usual
    var colModel = [
    { name: 'i', index: 'i', width: 60, hidden: true, search: false },
    { name: 'c', index: 'c', width: 100, search: true },
    { name: 'p', index: 'p', width: 100, search: true },
    { name: 'displayed', index: 'displayed', align: 'center', width: 100, formatter: booleanToCheckmark, search: false },
];
    $(function() {
        $(ft).jqGrid({
                datatype: 'clientSide',
                data: globals.myData, // Array of objects ("the data"), data is correctly displayed
                height: 300,
                // autowidth: true,
                width: 300,
                forceFit: true,
                colNames: ['I', 'C', 'P', 'dis.'],
                colModel: colModel,
                rowNum: 10000,
                sortname: 'displayed',
                sortorder: 'desc',
                viewrecords: true,
                gridview: true,
                caption: 'XYZ'
            });
    });
    // filter bar
    // http://www.trirand.com/jqgridwiki/doku.php?id=wiki:toolbar_searching
    var filterOpts = { autosearch: true };

    // LINE WHERE IT FAILS
    $(ft).jqGrid('filterToolbar', filterOpts);

1 个答案:

答案 0 :(得分:1)

您尝试在filterToolbar阻止之外调用$(function() {/*it should be called here*/}); 的错误。

通常会将{strong>全部代码置于$(function() {...});内。另外,还会减少全局变量的数量,这些变量将作为属性添加到window。全局变量的使用会增加与其他标准全局变量发生冲突的可能性。