Extjs中報表匯出,報錯。
阿新 • • 發佈:2018-12-30
出錯的原因是,匯出按鈕提交所需要的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(); };