Dojo Datagrid将New Item添加到Store后进行排序

时间:2011-04-04 15:55:12

标签: sorting datagrid dojo

我遇到一个问题,一个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函数。但是连接/订阅什么?

1 个答案:

答案 0 :(得分:2)

前几天我正在努力解决这个问题。我认为您需要从onComplete函数内部调用datagrid的sort()方法,该函数名为afterStoreUpdate

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