Поиск jqGrid вызывает ошибку: Ошибка типа: Не удается прочитать свойство 'searchrules' неопределенного - PullRequest
0 голосов
/ 16 февраля 2012

Когда я переключил jqGrid для использования расширенного поиска - кажется, что он работает нормально, за исключением того, что он появляется с сообщением об ошибке «TypeError: Невозможно прочитать свойство« searchrules »of undefined» в Chrome при нажатии кнопки поиска. Странно в Firefox ошибка: «Ошибка типа: g не определена».

Если я просто нажму кнопку "ОК" для ошибки, страница отправится обратно на мой контроллер MVC просто отлично. Я просто хочу, чтобы ошибка пошла - есть идеи? Вот код сетки:

jQuery("#list").jqGrid({
            url: '/Audit/GridData/',
            datatype: 'json',
            mtype: 'GET',
            colNames: ['Id', 'Date', 'Username', 'ObjectName', 'Event', 'Module'],
            colModel: [
      { name: 'Id', index: 'Id', width: 100, align: 'left', searchrules: { required: true }, search: true },
      { name: 'Date', index: 'DateStamp', width: 100, align: 'left', searchrules: { required: true }, search: true },
      { name: 'Username', index: 'Username', width: 200, align: 'left', searchrules: { required: true }, search: true },
      { name: 'ObjectName', index: 'ObjectType', width: 200, align: 'left', searchrules: { required: true }, search: true },
      { name: 'Event', index: 'Event', width: 120, align: 'left', searchrules: { required: true }, search: true },
      { name: 'Module', index: 'Module', width: 120, align: 'left', searchrules: { required: true }, search: true}],
            pager: '#pager',
            rowNum: 10,
            postData: {
                filters: '{"groupOp":"AND","rules":[{"field":"invdate","op":"gt","data":"2007-09-06"},{"field":"invdate","op":"lt","data":"2007-10-04"},{"field":"name","op":"bw","data":"test"}]}'
            },
            pgbuttons: true,
            rowList: [5, 10, 20, 50],
            sortname: 'Id',
            sortorder: "desc",
            viewrecords: true,
            imgpath: 'http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/themes/redmond/images/',
            caption: 'Audits'
        }).navGrid('#pager', { search: true, edit: false, add: false, del: false, searchtext: "Search" }, {}, {}, {}, { multipleSearch: true, sopt: ['eq', 'bw', 'cn', 'gt', 'lt'] });

Спасибо

1 Ответ

1 голос
/ 16 февраля 2012

Вы используете очень странное значение postData.filters.Он содержит правила для полей invdate и name, которых нет в сетке.Я полагаю, что правильные данные будут выглядеть примерно так:

postData: {
    filters: '{"groupOp":"AND","rules":[' +
        '{"field":"DateStamp","op":"gt","data":"2007-09-06"},' +
        '{"field":"DateStamp","op":"lt","data":"2007-10-04"},' +
        '{"field":"Username","op":"bw","data":"test"}]}'
}

. В любом случае вам следует использовать значения из index свойств colModel, которые вы используете.

Дополнительно вам следуетудалить устарела опция imgpath, которая будет просто проигнорирована jqGrid с версией выше 3.4.x.

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