На самом деле создание фильтра Панель инструментов 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);