首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确管理Ext-js4.2中的PagingToolbar?

如何正确管理Ext-js4.2中的PagingToolbar?
EN

Stack Overflow用户
提问于 2013-04-11 21:38:35
回答 1查看 12.4K关注 0票数 2

当我管理使用代理(ajax)的网格上的工具栏时,我遇到了一些问题。

代码语言:javascript
复制
 this.grid  = new Ext.create('Ext.grid.Panel',{
            region      : 'center',
            loadMask    : true,
            layout      : 'fit',
            store       : 'Contenedores',

            tbar: [
                   { text: 'Exportar Excel' },
                   '->',
                   { text:'Buscar',     handler: this.buscar,   scope: this},
                   '-',
                   { text:'Limpiar',    handler: this.limpiar,  scope: this}
            ],
            columns : [],

            bbar : new Ext.create('Ext.toolbar.Paging',{
                store: 'Contenedores', displayInfo: true,
                displayMsg  : 'Registros {0} - {1} de {2}',
                emptyMsg    : 'No hay registros'
            })
        });

我遇到的问题是:

  • 当我调用store.load()时,pagingtoolbar不会阻塞,所以我可以单击下一页,当加载网格时,页面工具栏上会出现不正确的页面。在Ext 3上,当我在网格上使用loadMask: true时,当我调用store.load()时,pagingToolbar会被锁定。
  • 如果我在像2或更高的页面上,并且我调用了store.load(),那么在加载当前页面标签到1之后,pagingToolbar不会更新。
  • 我需要实现一个干净/重置按钮,所以我如何清理页面工具栏上的标签。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-04-11 22:19:00

如果执行store.load()的预期结果是进入网格中的第一个页面,则只需在分页工具栏上调用moveFirst(),而不是直接加载到存储中。示例:

代码语言:javascript
复制
var pagingtb = Ext.create('Ext.toolbar.Paging',{
                store: 'Contenedores', 
                displayInfo: true,
                displayMsg  : 'Registros {0} - {1} de {2}',
                emptyMsg    : 'No hay registros'
            });

this.grid  = Ext.create('Ext.grid.Panel',{
            region      : 'center',
            loadMask    : true,
            layout      : 'fit',
            store       : 'Contenedores',

            tbar: [
                   { text: 'Exportar Excel' },
                   '->',
                   { text:'Buscar',     handler: this.buscar,   scope: this},
                   '-',
                   { text:'Limpiar',    handler: this.limpiar,  scope: this}
            ],
            columns : [],

            bbar : pagingtb 
        });

pagingtb.moveFirst();

此外,在new -> create()返回指定类的实例之前,不需要关键字create()

如果需要存储发送额外的参数,则可以在调用工具栏上的moveFirst()doRefresh()之前在代理上设置它们。示例:

代码语言:javascript
复制
store.getProxy().extraParams.someParameter1 = 'some value';
store.getProxy().extraParams.someParameter2 = 'another value';
pagingtb.doRefresh(); // or .moveFirst() if you want the grid to 
                      // move to the first page after load
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15959332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档