Панель инструментов фильтра jqGrid - colModel: объект не определен или не определен - PullRequest
0 голосов
/ 09 августа 2011

На самом деле создание фильтра Панель инструментов jqGrid должна быть прямой, как в «новой версии 3.5, интегрированная панель инструментов поиска» пример или документация .

Однако, когда я запускаю строку myDataTable.jqGrid('filterToolbar', filterOpts);, я всегда получаю ошибку «Невозможно получить значение свойства« colModel »: объект является нулевым или неопределенным» в строке 3613 JQuery.jqGrid.src.js, которая является : $.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 Ответ

1 голос
/ 10 августа 2011

Ошибка, которую вы пытаетесь вызвать filterToolbar вне блока $(function() {/*it should be called here*/});.

Обычно в одном месте все код внутри $(function() {...});. Таким образом, дополнительно уменьшается количество глобальных переменных, которые будут добавлены в качестве свойств к window. Использование глобальных переменных дополнительно увеличивает вероятность конфликтов с другими стандартными глобальными переменными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...