FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 2601|回复: 3
打印 上一主题 下一主题

FineUI4.2导出Excel有时出错

[复制链接]
跳转到指定楼层
楼主
发表于 2015-11-3 10:25:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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失败!', '提示');
            }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2015-11-3 11:40:10 | 只看该作者
当然有关系,仔细看下这篇博客:http://www.cnblogs.com/sanshi/archive/2012/11/20/2778332.html
板凳
 楼主| 发表于 2015-11-3 12:41:45 | 只看该作者
本帖最后由 crhcss 于 2015-11-3 12:49 编辑

其实只要把
            {
                Notify("列表无数据,导出Excel失败!");
            }
这段代码去掉,然后EnableAjax=false;就能成功导出Excel;
但是我疑问的是,我另外一个页面,跟这个实例是类似的,调用相同的 ExportExcel(GridData)方法,EnableAjax=true,却也能顺利导出excel。下面截图的部分我都对比过了,一模一样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
地板
发表于 2015-11-3 12:51:20 | 只看该作者
fineui的button可能会导致回发,就是说你excel还没下载完成,页面就回发了、刷新了,所以报错。
EnableAjax=true,是允许ajax回发,但并不表示一定马上回发,所以你的代码可能是一模一样但效果可能会不同,这跟没有触发到回发有关。

button下载excel建议设置EnableAjax=false
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-2 07:15 , Processed in 0.044945 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表