私はextjs3.4バージョンを使用しています。ここでは、コントローラーで直接フォーム参照を取得できません。
task.MgmtContainerUi = Ext.extend(Ext.Panel, {
title: 'My Panel'
,width: 834
,height: 443
,layout: 'fit'
,header: false
,initComponent: function() {
this.items = [
{
xtype: 'grid'
....
....
}
,{
xtype: 'grid'
.....
.....
}
,{
xype:'form'
,fileUpload: true
,width: 498
,height: 350
,frame: true
,title: 'Upload a File'
,autoHeight: true
,id:'uploaderFileForm'
,ref: 'uploaderFileForm'
,bodyStyle: 'padding: 10px 10px 10px 10px;'
,labelWidth: 50
,defaults: {
anchor: '95%'
,allowBlank: false
,msgTarget: 'side'
}
,items: [{
xtype: 'fileuploadfield'
,id: 'DictUploadField'
,width: 350
,emptyText: 'Select an file'
,fieldLabel: 'Photo'
,labelWidth: 450
,name: 'file-path'
,buttonText: 'Browse ...'
}]
,buttons: [{
text: 'Upload'
,id:'uploadFileButton'
}
,{
text: 'Reset'
,id:'resetUploadFileButton'
}
,{
text:'Cancel'
,id:'cancelUploadFileButton'
}]
}
];
task.MgmtContainerUi.superclass.initComponent.call(this);
}
});
コントローラーでは、以下に示すようにアップロードボタンのイベントを記述しました
var uploadFileButton = Ext.getCmp('uploadFileButton');
uploadFileButton.on('click', this.onUploadFileButton, this);
次に、コントローラーで以下のようにフォームの参照を取得しようとします
,onUploadFileButton: function(me, e){
var formRef = Ext.getCmp('uploaderFileForm');
formRef.getForm();
}
メソッドではなく formRef.getForm() としてエラーが発生しました。firebug でデバッグすると、formRef がパネルとして親コンポーネントを指していることがわかりましたが、それでも xtype はフォームのみです。ここで getForm メソッドを呼び出すことができません。
Ext.util.Observable
Ext.Component
Ext.BoxComponent
Ext.Container
Ext.Panel
Ext.form.FormPanel
理由はExt.form.FormPanel is child for Ext.Panel
。
フォーム参照を取得するには? extjs3.4 バージョンでファイルのアップロードを達成するための他のポインターはありますか?
どんな助けでも大歓迎です。