当前位置:   article > 正文

Extjs 指定 grid 和 分页工具条的 store_ext grid 表格自定义 store

ext grid 表格自定义 store

需要实现一个 如图所示 的效果,程序是通过for 循环 创建的 不同 grid 表格对象,同一个action 通过传递回不同 的 作业区编码 来读取不同的数据。

最开始 将 每一个 grid 的 store 独立出来,将 grid 和 分页工具条的store 指定为独立出来的哪个 store。但是结果是有多个grid的内容是一样的,分页工具条的条数全部是一样的。

后来思考了下,在每个grid 的store属性直接动态生成,然后到分页工具条里边通过读取store 的id 来获取该store。

这样的结果是分页工具条的store没有读取到,因为在 分页工具条 store 在获取 grid story 的时候,该组建并没有被构建完成,查找只说也就无从找起了。

通过的思路 又找到了一种解决方案,那就是在 工具条组建加载完成时 出发的 事件 中,去更改其store 为 grid 的store。


上面的 方法还没有 完成的时候就找到最终解决方案了:首先定义一个全局的 store 并创建它,指定grid 和 工具条的store 为 全局store名称,最后在 工具条 加载完成 事件中 ,调用 工具条 的分页方法即可,根据 javascript 闭包 原则,当前的 全局 store 绝对是我们想要的哪个!


  1. function CreateStore(zyqid) {
  2. var s = Ext.getCmp("store" + zyqid);
  3. if (typeof(s) == "undefined") {
  4. return new Ext.data.Store({
  5. id : "store" + zyqid,
  6. // autoLoad : true,
  7. reader : listreader,
  8. proxy : new Ext.data.HttpProxy({
  9. url : "zyxx/zyqmessage.action"// ?zyqbm=" + zyqid
  10. // method : 'post'
  11. })
  12. });
  13. } else {
  14. return s;
  15. }
  16. }

  1. var _store = CreateStore(zyqid);//创建store 方法
  2. var listgrid = new Ext.grid.GridPanel({
  3. // store : zyxxstore,
  4. id : "grid" + zyqid,
  5. // store : st = CreateStore(zyqid), // 这里 动态创建一个store
  6. store : _store,
  7. cm : colmodel,
  8. columnLines : true,
  9. // title : zyqid,
  10. listeners : {
  11. 'afterrender' : function(i) {
  12. // var tb = Ext.getCmp("toolbar"+zyqid);
  13. // alert(this.store);
  14. // _store.reload();
  15. var elments = Ext.select(".x-grid3-header");// .x-grid3-hd
  16. elments.each(function(el) {
  17. el.setStyle("background-color", '#CBBC82');// 设置不同的颜色
  18. el.setStyle("background-image", 'none');
  19. }, this);
  20. }
  21. },
  22. bbar : new Ext.PagingToolbar({
  23. pageSize : 10,
  24. id : "toolbar" + zyqid,
  25. // store : CreateStore(zyqid),
  26. store : _store,
  27. displayInfo : true,
  28. displayMsg : '显示第{0}条至{1}条,共{2}条',
  29. emtyMsg : '没有记录',
  30. listeners : {
  31. 'afterrender' : function(i) {
  32. // this.store.reload();
  33. this.doLoad(0);//在这里调用 工具条 store 加载
  34. }
  35. },
  36. doLoad : function(start) {
  37. // alert(start);
  38. sqgrid_start = start;
  39. // 改变全局变量的值
  40. var para = {};
  41. var pn = this.store.paramNames;
  42. para[pn.start] = start;
  43. para[pn.limit] = this.pageSize;
  44. para['zyqbm'] = zyqid;
  45. this.store.load({
  46. params : para
  47. });
  48. }
  49. }),
  50. viewConfig : {
  51. forceFit : true,
  52. scrollOffset : 0
  53. }
  54. });


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/322305
推荐阅读
相关标签
  

闽ICP备14008679号