开发者

Data sorting in a dojox.grid.EnhancedGrid

First of all, thank you a lot for what you are doing here. That is very nice.

I am developing a web application with Dojo, and I am facing a problem with ordering my rows in a dojox.grid.En开发者_运维问答hancedGrid. Let's say i have a product with product status, my JSON file looks like:

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

I want to put that data in my grid and change the order of the rows by clicking in the header.

I have in my HTML file:

<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>

and my Javascript file:

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'];
}

The problem? I cannot order by status (status's name), it only orders by product.id when I click in the status header.

Any workaround for that? Thanks in advance.


I believe you need to add clientSort="true" to enable client-side sorting. Add this to the <table> declaration.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜