2013-02-26 60 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() }; ,每按下一次按鍵,您都需要重置計時器。這不是解決方案的完整代碼,但應該是正確的路徑。我個人使用它來構建的搜索工具欄自動完成(這可能是更好,然後在我的腦海定時搜索)

相關問題