这是调用窗口显示事件后使用和触发按钮单击事件的代码。这很好用。但是如何在不使用Ext.getCmp
的情况下做同样的事情这是
行Ext.getCmp('recent_refresh').fireEvent('click');
这是代码
Ext.create('widget.window', {
title: 'Activity',
closable: true,
closeAction: 'hide',
width: 250,
height: 300,
bodyBorder: true,
tbar: {
xtype: 'toolbar',
ui: 'plain',
items: [{
iconCls:'refresh',
id: 'recent_refresh',
listeners: {
click: function(){
Ext.Ajax.request({
url: 'control.php',
params: {
'case': '18'
},
success: function(response){
var json = Ext.decode(response.responseText);
}
});
}
}
},
'->',
{
xtype: 'displayfield',
name: 'act_date',
id: 'act_date',
value: new Date(),
formatValue: Ext.util.Format.dateRenderer('Y-m-d')
}]
},
layout:'accordion',
border: false,
items: [ grid1, grid2, grid3 ],
listeners: {
show: function() { Ext.getCmp('recent_refresh').fireEvent('click'); }
}
}).show();
此致
答案 0 :(得分:1)
有很多方法可以做到这一点。一种方法是使用Ext.create调用进行赋值,因为Ext.create返回这样的引用。以下示例中的app命名空间是填充,因为您使用的任何命名空间都是未知的。获得对窗口小部件的变量引用后,您可以使用它来获取对顶部工具栏的引用,然后在工具栏中获取所需项目的引用。
Ext.ns('app');
app.activityWin = Ext.create('widget.window', {...}
app.activityWin.getTopToolbar().get('recent_refresh').fireEvent('click');
答案 1 :(得分:1)
使用ref
属性..我不知道它是否已被转移到Ext JS 4,但这是我们在Ext Js 3.3中的做法
var win = new Ext.Window({
..config..
buttons : [{
text : 'save'
ref : 'saveButton'
}],
listeners : {
show : function(win){
win.saveButton.fireEvent('click'); //saveButton here is the same as used in ref above.
}
}
});
ref
现在可以直接使用,无需使用Ext.getCmp
在你的情况下检查ref的正确用法并实现它..
干杯。