我在表单中创建了一个方法,用于创建一个带有表单的模态。
onButtonClickSave: function(button, e, eOpts) {
//Create modal form
var confirm = new Ext.Window({
xtype: 'form',
hidden: true,
itemId: 'FrmModalConfirma',
layout: 'auto',
bodyPadding: 10,
items: [
{
xtype: 'displayfield',
fieldLabel: 'Are you sure?',
labelWidth: 500
},
{
xtype: 'combobox',
width: 500,
fieldLabel: 'Reason',
labelWidth: 150,
store: [
[
'2',
'Death'
],
[
'3',
'Birth'
],
[
'4',
'Job'
],
[
'5',
'Debt'
]
]
},
{
xtype: 'container',
layout: 'column',
items: [
{
xtype: 'button',
text: 'Yes',
listeners: {
click: 'onButtonClickCalculate'
}
},
{
xtype: 'tbspacer',
width: 30
},
{
xtype: 'button',
text: 'No, cancel'
}
]
}
]
});
//Show modal form
confirm.show();
}
但是当我点击应该执行此代码的按钮时:
onButtonClickCalculate: function(button, e, eOpts) {
Ext.Msg.alert('Yes', 'It works');
}
我在浏览器上收到此错误: Ext.util.Event.getFireInfo():没有名为" onButtonClickGuardaRecalcula"在sbs.view.admin.PrincipalViewController 上,但所有这些都是在名为admin.StudentViewController的面板中创建的。我的第一个猜测是因为模态是使用新的Ext.Window创建的,但是我在ExtJS中缺乏经验让我完全失去了这个问题。有什么想法吗?
答案 0 :(得分:1)
有几件事。当你尝试this.getView()
时,你找不到函数,因为你在窗口范围内而不是视图......这是否有意义:)
好的,这是你可以尝试的。在var confirm = new Ext.Window
放置此
var that = this;
然后在处理程序中添加属性
scope: that,
handler: function() {
this.getView().....
}
类似的东西。