Sag*_*odi 2 extjs modalpopups sencha-touch sencha-touch-2
我已经创建了Panel,如下所示
Ext.define('MyApp.view.DatePanel', {
extend: 'Ext.Panel',
alias: 'widget.DatePanel',
config: {
itemid:'DatePanel',
modal:true,
centered: true,
width:'320px',
height:'110px',
items:[
{
xtype: 'datepickerfield',
label: 'Select date',
type:'date',
itemId: 'rptDate',
value: new Date(),
},
{
xtype:'toolbar',
docked:'bottom',
items:[{
text:'OK',
ui:'confirm',
action:'ShowTurnOverReport'
},
{
text:'Cancel',
ui:'confirm',
action:'Cancel'
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
});
我使用波纹管代码将此面板显示为弹出窗口
Ext.Viewport.add({xtype: 'DatePanel'});
Run Code Online (Sandbox Code Playgroud)
现在按钮取消单击我想隐藏/删除它
我试过了
Ext.Viewport.remove(Datepanel),
var pnl = Ext.getCmp('DatePanel');
pnl.hide();
Run Code Online (Sandbox Code Playgroud)
但没有任何效果.我怎样才能做到这一点 ??
您可以通过多种方式完成此操作.
要使用该Ext.getCmp()功能,您需要id为组件设置属性.
因此,请给出如下所示id的DatePanel喜欢,
Ext.define('MyApp.view.DatePanel', {
extend: 'Ext.Panel',
alias: 'widget.DatePanel',
id:'datepanel',
config: {
......
......
Run Code Online (Sandbox Code Playgroud)
然后在Cancel按钮单击处理程序上,编写以下代码...
{
text:'Cancel',
ui:'confirm',
action:'Cancel'
listeners : {
tap : function() {
var pnl = Ext.getCmp('datepanel');
pnl.hide();
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于您已经定义了itemid属性,因此可以使用以下行来获取对组件的引用.
var pnl = Ext.Container.getComponent('DatePanel');
pnl.hide();
Run Code Online (Sandbox Code Playgroud)