2013-02-26 58 views

回答

3

如果检查将在使用searchOnEnter: false选项的情况下使用的jqGrid的代码(见here)您将看不到任何管理超时的选项,之后将自动开始搜索。超时总是500ms(半秒)。因此,如果您需要再次超时,则必须在自定义代码中实现相同的行为。您可以注册自己的​​处理程序,它与searchOnEnter: false选项的做法相同,但是会有另一个超时。例如,

var $grid = $("#grid"), hTimeout; 
$grid.jqGrid('filterToolbar', {defaultSearch: "cn", stringResult: true}); 
$grid.closest(".ui-jqgrid-view") 
    .find(">.ui-jqgrid-hdiv .ui-search-toolbar th input") 
    .keydown(function (e) { 
     var uiKeyCode = $.ui.keyCode, 
      keyCode = e.keyCode || e.which; 

     if (keyCode === uiKeyCode.ENTER) { 
      return false; 
     } 

     if (keyCode === uiKeyCode.PAGE_UP || keyCode === uiKeyCode.PAGE_DOWN || 
       keyCode === uiKeyCode.END || keyCode === uiKeyCode.HOME || 
       keyCode === uiKeyCode.UP || keyCode === uiKeyCode.DOWN || 
       keyCode === uiKeyCode.LEFT || keyCode === uiKeyCode.RIGHT) { 

      return; 
     } 

     if (hTimeout) { 
      clearTimeout(hTimeout); 
     } 
     hTimeout = setTimeout(function() { 
      $grid[0].triggerToolbar(); 
      hTimeout = undefined; 
     }, 3000); // start searching with 3 sec timeout 
    }); 

请参阅the demo

0

里面的colModel你可以设置searchoptions自定义函数 例:

searchoptions: {dataInit: function (elem) { AutoOrAfterEnterSearch(elem) }} ... 

你可以再建事件处理程序触发时间段搜索后或当按下回车键防爆if (e.keyCode == 13) { SearchFunction() }; ,每按下一次按键,您都需要重置计时器。这不是解决方案的完整代码,但应该是正确的路径。我个人使用它来构建的搜索工具栏自动完成(这可能是更好,然后在我的脑海定时搜索)

相关问题