日期:2014-05-16  浏览次数:20404 次

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();
	};