2012-04-24 31 views
0

我正在使用Ext.Form.Panel,但是這次我想使用Ext.form.field.File。我能夠提交併上傳數據,將field.file信息放入一個form.Panlen中,我認爲這不是唯一的選擇。現在我有:ExtJS 4使用Ext.form.field.File代替Ext.Form.Panel如何提交

Ext.create('Ext.form.field.File', { 
          id: 'ala-bala', 
          name: 'doc', 
          width: 300, 
          buttonOnly: true, 
          hideLabel: true, 
          listeners: { 
           'change': function(fb, v){ 
            var el = Ext.getCmp('ala-bala-nica'); 
            el.update('<b>Selected:</b> '+v); 

這是我的固定工具欄的一部分,我也有一個按鈕:

xtype:'button', 
        icon: g_settings.iconUrl + 'add-icon.png', 
        text: 'Add File', 
//     handler: this._addDocument 
        handler: function() { 
         var form = Ext.getCmp('ala-bala').getRawValue(); 
//      if(form.isValid()){ 
          form.submit({ 
           } 
          } 

很明顯,我不能使用form.submit這一點,但我希望有一種方法來保持我的form.field.File,仍然能夠提交和上傳我的文件。只是無法弄清楚。

感謝

Leron

回答

1

當我在處理類似的問題我基本上是創建一個虛擬的形式和這種形式的調用submit()。這樣的事情:

var form = Ext.create('Ext.form.Panel', { 
    items: [ my_file_field ] 
}); 

form.getForm().submit({ 
    method: 'POST', 
    url: 'myservice.url', 
    ... 
}); 
+0

是的,這是我最初做的。但所有的按鈕都在工具欄中,當我在那裏製作一個面板並由於某種原因添加了一個上傳按鈕時,它會在file.Field的'browse..'按鈕下面,工具欄變得寬泛起來。我必須將兩個按鈕對齊在同一行上,否則我需要將提交事件傳遞給另一個。目前還無法做到這兩者之一。你是如何添加上傳按鈕的? – Leron 2012-04-24 17:01:14

+0

你不需要有兩個按鈕......只有一個會做 – sha 2012-04-24 17:02:23

+0

嗯,你能幫我嗎?我收到一個按鈕,我默認使用它來瀏覽系統,它被稱爲「瀏覽...」,我怎麼才能提交意願只有這個按鈕,或者你的意思是提交沒有任何進一步確認的選擇,或者我沒有得到你對? – Leron 2012-04-24 17:06:49