extjs 实现下载功能
//extjs代码,页面
var btn_out_user = new Ext.Button({ text : ‘导出excel‘, iconCls : ‘icon-del‘, handler : function() { Ext.Msg.show({ title:‘确认导出‘, msg: ‘您确定导出数据?‘, buttons: Ext.Msg.YESNO, width : 250, fn: function(btn){ if(btn==‘yes‘){ Ext.MessageBox.wait(‘正在导出数据, 请稍侯 ...‘, ‘提示‘); Ext.Ajax.request({ url : ‘outShopInfoAction.action‘, success : function(resp, ops){ var obj = Ext.decode(resp.responseText); window.parent.document.location = obj.path;//将地址赋值 Ext.MessageBox.updateProgress(1); //设置进度条 Ext.MessageBox.hide(); //关闭进度条 ds_user.load({params : {start : 0,limit : 20}}); }, failure : function() { Ext.MessageBox.updateProgress(1); Ext.MessageBox.hide(); Ext.Msg.show({ title : ‘错误提示‘, msg : ‘删除时发生错误!‘, width : 200, buttons : Ext.Msg.OK, icon : Ext.Msg.ERROR }); } }); } }, icon: Ext.MessageBox.QUESTION }); } });
后台调用程序如下:
public void out() throws Exception{ String outPath = "../upload/test.xls"; this.getResponse().getWriter().write("{‘path‘ : ‘"+outPath+"‘}"); }
在这里要求会使用json的数据传递,在后台程序中,传递一个参数path,它的值是:String outPath = "../upload/test.xls"。前台负责接收这个参数,通过参数名称,取得这个参数的值。
var obj = Ext.decode(resp.responseText); window.parent.document.location = obj.path;
通过以上的方法,可以在后台任意给前台推送值。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。