dojox.grid.EnhancedGrid中的数据排序

时间:2011-08-02 01:47:08

标签: javascript dojo dojox.grid dojox.grid.datagrid

首先,非常感谢你在这里所做的一切。这非常好。

我正在使用Dojo开发一个Web应用程序,我遇到了在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排序。

有什么解决方法吗? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您需要添加clientSort="true"才能启用客户端排序。将其添加到<table>声明。