-1

私は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 バージョンでファイルのアップロードを達成するための他のポインターはありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

3

あなたは笑うだろう (または壁に頭をぶつける): タイプミスがあります。

あなたが書いた:

xype: 'form'

それ以外の:

xtype: 'form'
于 2013-06-05T12:33:45.227 に答える