出錯的原因是,匯出按鈕提交所需要的FormPanel沒有渲染,寫的時候寫成這樣就可以了:
var queryPanel = new Ext.form.FormPanel({fileUpload: true,renderTo: Ext.getBody(), //關鍵是這句,一定要渲染id: 'queryPanel', items: []});var btn_export = new Ext.Button({text : '匯出',iconCls : 'down',renderTo: Ext.getBody(), handler: function() {queryPanel.getForm().submit({url : exportURL});}});//url = url + conditions;/**查看詳情*/var showWindow = function(){if( window_add_control != null){window_add_control.close();}window_add_control = new Ext.Window({id:'addControl',title:'查看詳情',width:900,height:480,resizable : false,autoHeight : true,tbar : [btn_export],modal : true,closeAction : 'close',items:[{xtype : 'panel',height : 480,//這個高度要大於報表裡設定的高度,跟iframe標籤裡的height組合使用width : '100%',target : "middle",bodyStyle : 'background-color:#FFFFFF',html : '<iframe name="mainFrame" id="main" height="100%" frameborder="0" width="100%" scrolling="auto" src="' + url + '"></iframe>'}]}).show();};