我遇到一个问题,一个DataGrid在调用newItem()后调用自己,然后在支持datagrid的商店上使用save()。
<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以显示新商品。但新项目位于列表的底部。它似乎没有识别数据网格的排序顺序。
我认为我需要在datagrid上连接(或订阅)一个事件,告诉我它已经更新了数据。然后我在触发此事件时调用sort / filter函数。但是连接/订阅什么?
答案 0 :(得分:2)
前几天我正在努力解决这个问题。我认为您需要从onComplete函数内部调用datagrid的sort()方法,该函数名为afterStoreUpdate
dijit.byId('ldrSubGrid').sort();