我将PagingToolbar作为网格的bbar。当工具提示出现时,它会显示在我的可见屏幕下方,这就是垂直滚动显示的原因,但是当它显示时,垂直滚动会占据视口的某个位置,因此自动水平滚动也会显示溢出工具提示。所以基本上我有2个问题。
垂直滚动显示整个视口,但是带有bbar的网格仅位于南区域,网格已经垂直滚动。是否有某种配置来控制这种行为?
如何禁用PagingToolbar的工具提示我有以下代码无效(网格定义,删除不相关)。
initComponent: function() { var me = this; this.store = 'DevPlan'; var paging = Ext.create('Ext.PagingToolbar', { store: this.store, displayInfo: true, displayMsg: 'Wyświetlono wnioski {0} - {1} z {2}', emptyMsg: "Brak wniosków do wyświetlenia" }); Ext.each(paging.items.items, function(btn) { if (btn.getXType() == 'button' && btn.tooltip != undefined) { Ext.QuickTips.unregister(btn.getId()); } }); this.bbar = paging; this.callParent(arguments);
我想上面的代码可能无法正常工作,因为工具提示尚未注册,或者因为我没有尝试渲染分页工具栏,所以我试过了:
afterRender:function() { this.callParent(); var items = this.bbar.items.items; Ext.each(items, function(btn) { if (btn.getXType() == 'button' && btn.tooltip != undefined) { console.log(btn.getId()); Ext.QuickTips.unregister(btn.getId()); } }); }
但是在这段代码中我得到了这个.bbar是未定义的。为什么?那么什么时候是bbar渲染?
答案 0 :(得分:2)
从ExtJS4开始,bbar只是将工具栏/项目应用为底部停靠并在初始化后未设置的简短方法,请参阅
if (me.bbar) {
docked.push(initToolbar(me.bbar, 'bottom'));
me.bbar = null;
}
我想你可以这样做(我希望这是一个事件,所以评论是这样的):
afterrender: function(grid) {
// 'this' should not be accessible within a eventcallback! If it is you are within the class definition and should use this.on('beforerender', ...) after the callParent() instead!!
// callParent() should be called within the init of the class, not somewhere else!
// this.callParent();
var pagebar = grid.down('pagingtoolbar'),
items = pagebar ? pagebar.items.items : [],
len = items.length,
i = 0;
// don't use each if it is not really necessary!
for(;i < len; i++) {
var item = items[i];
if (item.getXType() === 'button' && item.tooltip != undefined) {
console.log(item.getId());
Ext.QuickTips.unregister(item.getId());
}
});
}
修改强>
根据您的上一条评论:您不应该覆盖Grid的afterRender方法,而是将自己注册到aftererender事件,并在调用parent之后的initComponent()中执行此操作,如代码expample的注释中所写
编辑2:
每个按钮上都有一个私有方法可以清除工具提示。您可能知道私有方法仍然可以像任何其他方法一样调用,但在即将发布的框架版本中可以完全更改/删除。其中大多数也无法在API中找到。您正在寻找的方法是clearTip()
在要从中删除工具提示的每个按钮实例上调用它。这应该有用。
我完全已经监督了您的第一个问题:您应该考虑使用autoScroll: false
从视口中删除滚动行为,或使用viewConfig: { autoScroll: false, scroll: false }
答案 1 :(得分:0)
你可以这样做
{
dock : 'bottom',
xtype : 'pagingtoolbar',
store : store,
pageSize : 25,
displayInfo : true,
firstText:null,
prevText:null,
nextText:null,
lastText:null,
refreshText:null,
....