2011-04-04 91 views
2

我在調用newItem()然後在支持數據網格的商店上保存()後沒有自動執行操作的DataGrid出現問題。Dojo Datagrid在將商品添加到商店後進行排序

<div dojoType="dojo.data.ItemFileWriteStore" url="/MultiRaterManagerAjax" id="mrWriteStore" jsId="mrWriteStore"</div>  

<table dojoType="dojox.grid.DataGrid" region="left" query="{ hasSub: false }" 
     clientSort="true" selectionMode="single" jsId="ldrSubGrid" sortInfo="1" 
     errorMessage="Loading..." store="mrWriteStore"> 
      <thead> 
       <tr> 
        <th width="100%" field="_item" formatter="formatSubs">Subs</th>  
       </tr> 

      </thead> 
</table> 

的事件處理程序調用下面的JavaScript

item = mrWriteStore.newItem({}); 
//set the necessary attributes on item 
mrWriteStore.save({onComplete:afterStoreUpdate, onError: saveFailed}); 

一個新項目被添加到存儲和數據網格被更新顯示新項目。但新項目位於列表的最底部。它似乎無法識別數據網格的排序順序。

我在想我有一個事件需要連接到(或訂閱)datagrid,它告訴我它已經更新了數據。然後當這個事件被觸發時我調用排序/過濾函數。但是連接/訂閱什麼?

回答

2

我前幾天還在爲此苦苦掙扎。我認爲你需要從你的onComplete函數內部調用數據網格的sort()方法,你已經命名爲store更新

dijit.byId('ldrSubGrid').sort(); 
+0

這是爲排序工作。謝謝。我不認爲商店裏的事件會是我想要在網格上分類的。在同樣的情況下仍然存在過濾問題,但我還不知道提問的問題。 onComplete:ldrSubGrid.filter({hasSub:false,},null);沒有做任何事情,但在Firebug正確過濾網格後,運行相同的代碼。有時JavaScript很笨拙。 – srock 2011-04-06 15:26:36

+0

它是否包裹在這樣的功能? onComplete:function(){ldrSubGrid.filter({hasSub:false,},null); }只是檢查確認 – 2011-04-06 16:13:46