2013-09-17 2 views
0

Когда я объявляю searchOnEnter: true в моей сетке, он позволяет мне использовать клавишу ввода при выполнении поиска на моей сетке. Тем не менее, когда я нажимаю клавишу ввода для выполнения поиска, он не фильтрует сетку вообще. Однако, когда я повторяю те же действия дважды, фильтр работает во второй раз. Я понятия не имею, почему это происходит. Одна мысль состоит в том, что она может посылать пустую строку в первый раз, хотя я четко вхожу в текст поиска, но опять же не уверен. Любая помощь приветствуется.JQGrid (searchOnEnter: true) Ошибка

-Adam

+1

Можете ли вы разместить настройку сетки и любой соответствующий код? В противном случае ваша проблема будет трудно решить ... – FastTrack

ответ

1

Для решения этой проблемы необходимо исправить исходный код jqGrid. Вам нужно найти обработчик события keydown (функция, которая запускается при нажатии кнопки Enter в диалоговом окне поиска). Этот код можно найти, выполнив поиск «searchOnEnter» в исходном файле. Правый фрагмент выглядит так:

if (p.searchOnEnter || p.closeOnEscape) { 
     $("#"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) { 
      var $target = $(e.target); 
      if (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER 
      !$target.hasClass('add-group') && !$target.hasClass('add-rule') && 
      !$target.hasClass('delete-group') && !$target.hasClass('delete-rule') && 
      (!$target.hasClass("fm-button") || !$target.is("[id$=_query]"))) { 

Здесь вы должны разделить строку кода $("#"+fid+"_search").focus().click(); на следующих двух:

   $("#"+fid+"_search").focus(); 
       setTimeout(function(){ 
        $("#"+fid+"_search").click(); 
       },0); 

заканчивая оригинальным кодом:

   return false; 
      } 

(смотри также here)

1

Это вызвано из-за ошибки в grid.filter.js из Struts2-JQuery-грид-плагин.

Смежные вопросы