Поиск не работает с панелью инструментов фильтра в JQGrid - PullRequest
2 голосов
/ 04 апреля 2011

Я сталкиваюсь с проблемой при загрузке данных в JQGrid на более позднем этапе вместо создания сетки.Я использую панель инструментов фильтра для поиска.

следующий код, который я использую:

Создание сетки

jQuery("#list").jqGrid({
            datatype: 'local',
            colNames: [my col names],
            colModel: [my col model],
             jsonReader: {
                root: "rows",
                page: "page",
                total: "total",
                //records: "records",
                repeatitems: false
            },
            height: 300,
            viewrecords: true,
            gridComplete: this.onGridComplete,
            ondblClickRow: this.rowDblClick,
            onSelectRow: this.selectRow,
            headertitles: false,
            loadtext: "Loading...",
            sortable: true,
            altRows: true,
            loadonce: true,
            rowNum: 100,
            pager: '#pager',
            root: "rows",
            rowList: [100, 200, 300],
            pagination: true,
            ignoreCase: true 
        })

Загрузка данных на более позднем этапе

if(gridDataStr != "none") // gridDatStr has data 
        {
            grid.initialize(); // create the grid
            var myjsongrid = JSON.parse(gridDataStr);            
            grid.table[0].addJSONData(myjsongrid);  
            grid.table.jqGrid('setGridParam',{datatype:'json', data:myjsongrid}).trigger('reloadGrid');          
            if (myjsongrid["rows"].length > 1) 
            {
                grid.table.filterToolbar({
                    stringResult: true,
                    searchOnEnter: false
                    });
            }
        }

Однако, если я загружаю те же данные во время создания сетки с типом данных: json и использованием некоторого действительного URL-адреса, поиск работает хорошо.

Есть предложения?

1 Ответ

2 голосов
/ 04 апреля 2011

Метод addJSONData нельзя использовать для работы с jqGrid, имеющим тип данных local.

Вы можете использовать addRowData и использовать localReader вместо jsonReader или установите data параметр jqGrid в отношении метода setGridParam, а затем вызовите jQuery("#list")[0].refreshIndex() (см. здесь ) и перезагрузите сетку.

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