2

次のようにパネルを作成しました

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'
                }

            }
        ]
}

});

以下のコードを使用して、このパネルをポップアップとして表示します

Ext.Viewport.add({xtype: 'DatePanel'});

今ボタンキャンセルクリックで非表示/削除したい

私が試してみました

Ext.Viewport.remove(Datepanel), 
var pnl = Ext.getCmp('DatePanel');
pnl.hide();

しかし、何も機能しませんでした。これどうやってするの ??

4

1 に答える 1

6

あなたはそれを複数の方法で行うことができます。

解決策1:

この機能を使用するには、コンポーネントにプロパティを設定Ext.getCmp()する必要があります。id

したがって、以下に示すようidにあなたに与えてください、DatePanel

Ext.define('MyApp.view.DatePanel', {
extend: 'Ext.Panel',
alias: 'widget.DatePanel',
id:'datepanel',
config: {
     ......
     ......

次に、Cancelボタンクリックハンドラーで、次のコードを記述します...

{
 text:'Cancel',
 ui:'confirm',
 action:'Cancel'
 listeners : {
     tap : function() {
           var pnl = Ext.getCmp('datepanel');
           pnl.hide();
     }
 }
}

解決策2:解決策2:

itemidプロパティはすでに定義されているので、次の行を使用してコンポーネントへの参照を取得できます。

var pnl = Ext.Container.getComponent('DatePanel');
pnl.hide();
于 2012-05-05T12:51:53.257 に答える