FineUI 官方论坛

标题: FineUI4.2导出Excel有时出错 [打印本页]

作者: crhcss    时间: 2015-11-3 10:25
标题: FineUI4.2导出Excel有时出错
本帖最后由 crhcss 于 2015-11-3 16:52 编辑

以下是导出excel按钮的代码:
<f:Button Icon="DatabaseTable" runat="server" Text="Excel导出"
                        ID="btnExcel" EnableAjax="false" DisableControlBeforePostBack="false" />
当我把EnableAjax设置为false时,不会出错;而如果设置为true时,则有些地方可用,有些地方不可用。导出Excel的方法是使用开源版官方实例
        protected void ExportExcel(Grid objGrid)
        {
            if (objGrid.Rows.Count > 0)
            {
                Response.ClearContent();
                Response.Write("<meta http-equiv=Content-Type; content=text/html;charset=UTF-8>");
                Response.AddHeader("content-disposition", "attachment;filename=myExcel.xls");
                Response.ContentType = "application/excel";
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.Write(GetGridTableHtml(objGrid));
                Response.End();
            }
            else
            {
                Notify("列表无数据,导出Excel失败!");
            }

        }

初步确认与EnableAjax的设置无关,因为有些实例是可以通过的


问题已经解决了,  通过ajax调用后台函数来实现excel导出
           var grid = F(GridData);            if (grid.store.data.items.length > 0) {
                F.control_enable_ajax = false;
                __doPostBack('', 'cs');
            }
            else {
                F.alert('列表无数据,导出Excel失败!', '提示');
            }



作者: sanshi    时间: 2015-11-3 11:40
当然有关系,仔细看下这篇博客:http://www.cnblogs.com/sanshi/archive/2012/11/20/2778332.html
作者: crhcss    时间: 2015-11-3 12:41
本帖最后由 crhcss 于 2015-11-3 12:49 编辑
sanshi 发表于 2015-11-3 11:40
当然有关系,仔细看下这篇博客:http://www.cnblogs.com/sanshi/archive/2012/11/20/2778332.html ...

其实只要把
            {
                Notify("列表无数据,导出Excel失败!");
            }
这段代码去掉,然后EnableAjax=false;就能成功导出Excel;
但是我疑问的是,我另外一个页面,跟这个实例是类似的,调用相同的 ExportExcel(GridData)方法,EnableAjax=true,却也能顺利导出excel。下面截图的部分我都对比过了,一模一样
作者: zy32002    时间: 2015-11-3 12:51
fineui的button可能会导致回发,就是说你excel还没下载完成,页面就回发了、刷新了,所以报错。
EnableAjax=true,是允许ajax回发,但并不表示一定马上回发,所以你的代码可能是一模一样但效果可能会不同,这跟没有触发到回发有关。

button下载excel建议设置EnableAjax=false




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4