2013-01-11 50 views
0

當dGrid由JsonRest存儲支持時,如何實現在OnDemandGrid樣式的dGrid中過濾數據的dijit/TextBox?我想在框中搜索並在輸入時更新網格。使用JsonRest存儲將實時查詢添加到OnDemandGrid樣式的dGrid?

我在dGrid文檔中找不到任何示例,儘管這看起來就是這樣 - Is it possible to filter data in a dgrid like you can in a datagrid? If so, how? - 它使用MemoryStore並將其交換出來用於JsonRest存儲不起作用。

我是否需要查詢商店,然後刷新網格?我需要可觀察嗎?那麼dojo.store.util.SimpleQueryEngine呢?這是答案的一部分。

推測在服務器上也必須進行一些更改以響應查詢。

回答

0

原來這很簡單。您只需在網格上設置查詢屬性並調用refresh()。

然後,我不得不對我的服務器端代碼進行簡單的更改以處理?search = whatever查詢字符串。

這裏是我的代碼:

// assuming we have a declarative dijit/TextBox and a reference to our grid in myGrid           
// wait for DOM before wiring up our textbox (when dijit parsed) 
ready(function() 
{ 
    var timeoutId = null, 
     searchTextBox = registry.byId('searchTextBox'); 

    searchTextBox.watch('value', function(name, oldValue, newValue) 
    { 
     if(newValue.length == 1) 
     { 
      return; 
     } 

     if(timeoutId) 
     { 
      clearTimeout(timeoutId); 
      timeoutId = null; 
     }; 

     timeoutId = setTimeout(function() 
     { 
      myGrid.query = { search: newValue }; 
      myGrid.refresh(); 
     }, 300); 
    }); 
}); 
相關問題