Сортировка данных в dojox.grid.EnhancedGrid

Прежде всего, большое спасибо за то, что вы здесь делаете. Это очень мило.

Я разрабатываю веб-приложение с помощью Dojo и столкнулся с проблемой упорядочения строк в файле dojox.grid.EnhancedGrid. Допустим, у меня есть продукт со статусом продукта, мой файл JSON выглядит так:

[
  {"id":1,"name":"Car A","price":"1000","productstatus":{"id":1,"name":"new"}},
  {"id":2,"name":"Car B","code":"2000","productstatus":{"id":2,"name":"old"}}
]

Я хочу поместить эти данные в свою сетку и изменить порядок строк, щелкнув заголовок.

У меня есть в моем файле HTML:

<table id="lstProduct" jsId="lstProduct" dojoType="dojox.grid.EnhancedGrid" >
  <thead>
    <tr>
      <th field="id">Id</th>
      <th field="name" width="100px">Name</th>
      <th field="price" width="100px">Price</th>
      <th field="id" formatter="formatterStatus">Status</th>
    </tr>
  </thead>
</table>

и мой файл Javascript:

dojo.addOnLoad(function() {

  productStore = new dojo.data.ItemFileReadStore({data: { items: ${products} }});
  dijit.byId("lstProduct").setStore(productStore);

});

// formatter
function formatterStatus(val, rowIndex) {
  return lstTasks.getItem(rowIndex)['productstatus'][0]['name'];
}

Эта проблема? Я не могу упорядочить по статусу (статус name), он упорядочивает только по product.id, когда я нажимаю в заголовке статуса.

Любой обходной путь для этого? Заранее спасибо.


person storm_buster    schedule 02.08.2011    source источник


Ответы (1)


Я считаю, что вам нужно добавить clientSort="true", чтобы включить сортировку на стороне клиента. Добавьте это в объявление <table>.

person OverZealous    schedule 04.08.2011