Сортировка данных Dojo после добавления нового предмета в магазин - PullRequest
2 голосов
/ 04 апреля 2011

У меня проблема с тем, что DataGrid не использует себя после вызова newItem (), а затем 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 обновляется, показывая новый элемент. Но новый пункт находится внизу списка. Кажется, он не распознает порядок сортировки сетки данных.

Я думаю, что есть событие, к которому мне нужно подключиться (или подписаться) на сетке данных, которая сообщает мне, что он обновил данные. Затем я вызываю функции сортировки / фильтрации, когда происходит это событие. Но к чему подключиться / подписаться?

1 Ответ

2 голосов
/ 04 апреля 2011

Я боролся с этим на днях.Я думаю, что вам нужно вызвать метод sort () сетки данных изнутри вашей функции onComplete, которую вы назвали afterStoreUpdate

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