dojo dgrid 修改

之前一直用dojo的datagrid做表格,但datagrid表格不方便做分页,然后改用dgrid做分页表格

dgrid的分页很简单,照着官网上的例子就可以完成。但在dgrid中做过滤功能时,照实花了一段时间,

dgrid的过滤要从dgird的collection上先进行过滤,然后再绑定dgrid的数据,如下:

var selection = store2.filter({ "name": value });
//var tracked = selection.track();
//tracked.fetch();
// var filter=new store.Filter();
// var selectionFilter = filter.eq("name", value);
// var selection=store.filter(selectionFilter);
selection.fetch();
 
//grid._renderedCollection.setData(tracked.data);
//grid.renderArray(selection.data);
grid.collection.setData(selection.data);
grid.refresh();
但我上述方法有个缺陷,就是setData之后,grid的collection都变了,如果再次换了过滤
条件过滤的话,就是从上一次过滤后的collection开始过滤。
因此,我采用了一个笨方法,就是每次过滤之前,利用json数据生成一个新的store,通过这个新
的store进行过滤,然后在绑定grid数据。这个方法虽然有效,但很笨,下一步要想想怎么改进。
 
找到改进办法了,其实就在官网里:“Rendering All Store Data at Once”中有一节讲到了,
grid.set('collection',store2)就可以实现多次搜索。
因为grid.set不会改变collection中store的值,包括store的data和storage,只会改变grid的_renderedCollection中data的值,即只
改变了grid渲染出来的值,所以可以多次进行过滤查询。
posted @ 2018-07-25 09:46  jamesinsun  阅读(269)  评论(0)    收藏  举报