1. 程式人生 > >Extjs中報表匯出,報錯。

Extjs中報表匯出,報錯。

出錯的原因是,匯出按鈕提交所需要的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();
	};