2012-03-28 21 views
3

私はextjsデザイナー2と一緒に作業しています。それは正常に動作し、私はビューポートを設計しました。いくつかのビューファイルを作成します。私は、ウィンドウを開くようにしたいextjsでボタンをクリックした後にウィンドウを開く方法

onButtonClick: function(button, e, options) { } 

Ext.define('MyApp.view.MyViewport', { 
    extend: 'Ext.container.Viewport', 

    layout: { 
     type: 'border' 
    }, 

    initComponent: function() { 
     var me = this; 

     Ext.applyIf(me, { 
      items: [{ 
       xtype: 'tabpanel', 
       activeTab: 1, 
       region: 'center', 
       items: [{ 
        xtype: 'panel', 
        title: 'SIM usage' 
       }, { 
        xtype: 'gridpanel', 
        title: 'Reports', 
        forceFit: true, 
        store: 'ReportsStore', 
        columns: [{ 
         xtype: 'gridcolumn', 
         dataIndex: 'Name', 
         text: 'Name' 
        }, { 
         xtype: 'gridcolumn', 
         dataIndex: 'Type', 
         text: 'Type' 
        }, { 
         xtype: 'gridcolumn', 
         dataIndex: 'Description', 
         text: 'Description' 
        }, { 
         xtype: 'actioncolumn', 
         items: [{ 
          handler: function (view, rowIndex, colIndex, item, e) { 
           alert(view); 
          }, 
          altText: 'Run report', 
          iconCls: 'runReport' 
         }] 
        }], 
        viewConfig: { 

        }, 
        dockedItems: [{ 
         xtype: 'toolbar', 
         dock: 'top', 
         items: [{ 
          xtype: 'tbfill' 
         }, { 
          xtype: 'button', 
          iconCls: 'addReport', 
          text: 'Add report', 
          listeners: { 
           click: { 
            fn: me.onButtonClick, 
            scope: me 
           } 
          } 
         }] 
        }] 
       }, { 
        xtype: 'panel', 
        title: 'Pyshical SIM cards' 
       }, { 
        xtype: 'panel', 
        title: 'Virtual SIM cards' 
       }, { 
        xtype: 'form', 
        layout: { 
         type: 'absolute' 
        }, 
        bodyPadding: 10, 
        title: 'Config', 
        items: [{ 
         xtype: 'numberfield', 
         id: 'IP1', 
         width: 220, 
         fieldLabel: 'Server IP', 
         labelWidth: 150 
        }, { 
         xtype: 'numberfield', 
         id: 'IP2', 
         width: 80, 
         fieldLabel: '.', 
         labelPad: 0, 
         labelSeparator: ' ', 
         labelWidth: 10, 
         x: 240, 
         y: 10 
        }, { 
         xtype: 'numberfield', 
         id: 'IP3', 
         width: 80, 
         fieldLabel: '.', 
         labelPad: 0, 
         labelSeparator: ' ', 
         labelWidth: 10, 
         x: 330, 
         y: 10 
        }, { 
         xtype: 'numberfield', 
         id: 'IP4', 
         width: 80, 
         fieldLabel: '.', 
         labelPad: 0, 
         labelSeparator: ' ', 
         labelWidth: 10, 
         x: 420, 
         y: 10 
        }, { 
         xtype: 'textfield', 
         id: 'username', 
         fieldLabel: 'username', 
         labelWidth: 150, 
         anchor: '100%', 
         x: 10, 
         y: 40 
        }, { 
         xtype: 'textfield', 
         id: 'password', 
         inputType: 'password', 
         fieldLabel: 'password', 
         labelWidth: 150, 
         anchor: '100%', 
         x: 10, 
         y: 70 
        }, { 
         xtype: 'textareafield', 
         id: 'emails', 
         fieldLabel: 'Alert emails', 
         labelWidth: 150, 
         anchor: '100%', 
         x: 10, 
         y: 100 
        }, { 
         xtype: 'textfield', 
         id: 'smtp', 
         fieldLabel: 'SMTP', 
         labelWidth: 150, 
         anchor: '100%', 
         x: 10, 
         y: 170 
        }, { 
         xtype: 'textfield', 
         id: 'smtpCredentials', 
         fieldLabel: 'SMTP Server credentials', 
         labelWidth: 150, 
         anchor: '100%', 
         x: 10, 
         y: 200 
        }, { 
         xtype: 'button', 
         height: 30, 
         width: 90, 
         text: 'Restore', 
         x: 170, 
         y: 230 
        }, { 
         xtype: 'button', 
         height: 30, 
         width: 90, 
         text: 'Save config', 
         x: 270, 
         y: 230 
        }] 
       }] 
      }] 
     }); 

     me.callParent(arguments); 
    }, 

    onButtonClick: function (button, e, options) {} 
}); 

:最初のものはmyviewport.jsです。しかし、私はこれを行う方法を知らない。私はすでに、窓をしたし、これはmywindow.jsファイルに格納されます。

Ext.define('MyApp.view.MyWindow', { 
    extend: 'Ext.window.Window', 

    height: 334, 
    width: 540, 
    layout: { 
     type: 'border' 
    }, 
    title: 'Run report', 

    initComponent: function() { 
     var me = this; 

     Ext.applyIf(me, { 
      items: [{ 
       xtype: 'form', 
       bodyPadding: 10, 
       region: 'center' 
      }] 
     }); 

     me.callParent(arguments); 
    } 
}); 

は、今私はonbuttonclickイベントに何を入れますか?

答えて

10

トリックを行う必要があり、あなたのボタンハンドラに

Ext.create('MyApp.view.MyWindow').show(); 

を追加します。

+0

ありがとうございました!だから、私はExt.create( 'IDの窓はここ')のIDを使用します。ウィンドウを開くとそれは動作します。すばらしいです。本当に役に立ちました!ありがとう –

+3

ちょうど明らかにするために、それはidではありません。それがタイプです。私は、用語「id」も有効なので少し肛門をしていますが、それは全く異なるものです。この場合、 'Ext.create( 'MyApp.view.MyWindow')'がウィンドウのインスタンスを1つ作成しているときに、すぐに 'show()'メソッドを呼び出して表示させます。 –

+0

情報と助けてくれてありがとう! –

関連する問題