jqGrid с filterToolbar зависает при поиске символа "\" - PullRequest
1 голос
/ 24 января 2011

Я использую jqGrid с filterToolbar и, хотя мне удалось найти почти все специальные символы, похоже, что когда вы вводите символ «\» (обратная косая черта), появляется знак «Загрузка ..» и тогда никакие операции впоследствии невозможны.

Такое же поведение, по-видимому, показывает @ http://www.trirand.com/blog/jqgrid/jqgrid.html. Перейдите к «Новое в версии 3.7»> «Поиск на панели инструментов» и попробуйте вставить «\» на панель инструментов поиска, и вы увидите ту же проблему.

Есть ли способ хотя бы не повесить сетку?

1 Ответ

2 голосов
/ 24 января 2011

Ваш пример помогает найти множество мелких ошибок в разных частях jqGrid. Так что +1 к твоей репутации от меня. После исправления example1 и example2 , который я подготовил для демонстрации проблемы, работают без проблем.

Я постараюсь опубликовать сегодня или завтра ошибку (с исправлениями), которую я нашел в форуме trirand . Краткая информация для вас: я сделал небольшие исправления в grid.custom.js, grid.base.js, jquery.searchFilter.js и grid.formedit.js (см. * -Fixed.js файлы в демоверсии). Основное исправление в grid.custom.js: строки 575, 642

ruleGroup += "\"data\":\"" + n + "\"}";

следует заменить на

ruleGroup += "\"data\":\"" + n.replace(/\\/g,'\\\\').replace(/\"/g,'\\"') + "\"}";

и в grid.base.js строка 203

phrase=phrase.toString().replace(new RegExp('\\"',"g"),'\\"');

следует заменить на

phrase=phrase.toString().replace(/\\/g,'\\\\').replace(/\"/g,'\\"');

Исправления в jquery.searchFilter.js и grid.formedit.js необходимы в случае, если объединить фильтрацию данных в «многопользовательском стиле» (filterToolbar с опцией stringResult: true) с одиночным полем поиск .

ОБНОВЛЕНО: как я и обещал до того, как только что опубликовал отчет об ошибке со всеми своими исправлениями здесь . Я надеюсь, что Тони (разработчик jqGrid) прочтет его и включит исправления в следующую версию jqGrid.

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