FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 2296|回复: 4
打印 上一主题 下一主题

下载出现乱码

[复制链接]
跳转到指定楼层
楼主
发表于 2014-8-12 11:41:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是在后台用NPOI自动生成的excel文档,在表格行中进行下载。但是每次点击下载后多出现以下的乱码窗口。这是怎么回事?以前重来没有遇到过,请大家帮我看看。

以下是代码:
<f:Grid runat="server" ID="gridReport" ShowBorder="true" ShowHeader="false" AutoScroll="true"
              AllowPaging="true" PageSize="12" Title="银行报表列表" DataKeyNames="ReportID" ForceFit="true"
              EnableCheckBoxSelect="true" EnableTextSelection="true" ClearSelectedRowsAfterPaging="false"
              EnableAlternateRowColor="true" EnableMouseOverColor="true" IsDatabasePaging="true"
             >
              <Columns>
                <f:BoundField Width="30px" DataField="ReportID" HeaderText="ID" Hidden="true" />
                <f:BoundField Width="200px" DataField="ReportTitle" HeaderText="报表名称" />
                <f:BoundField Width="180px" DataField="ReportArea" HeaderText="报表所属地区" />
                <f:BoundField Width="150px" DataField="ReportTimeRange" HeaderText="报表时间" />
                <f:BoundField Width="80px" DataField="ReportCreator" HeaderText="报表创建人" />
                <f:BoundField Width="80px" DataField="ReportCreateTime" HeaderText="报表创建时间" />
                <f:BoundField Width="70px" DataField="ReportPersonCount" HeaderText="总人数" />
                <f:BoundField Width="80px" DataField="ReportTotalAmount" HeaderText="总金额" />
                <finkButtonField HeaderText="报表下载" Text="报表下载" Width="60px" EnableAjax="false" CommandName="Download" />
              </Columns>
            </f:Grid>

cs
void gridReport_RowCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName == "Download")
            {
                string id = gridReport.Rows[e.RowIndex].Values[0].ToString();
                string strFile = Subsidy_ReportBLL.GetSingleModelByID(id).ReportPath;
                FileInfo fi = new FileInfo(strFile);
                Response.ClearContent();
                Response.Buffer = true;
                Response.Charset = "GB2312";
                Response.AddHeader("content-disposition", "attachment; filename=" + strFile);
                Response.AddHeader("content-length", fi.Length.ToString());
                Response.ContentType = "application/ms-excel";
                Response.ContentEncoding = System.Text.Encoding.UTF8;
                Response.WriteFile(fi.FullName);
                Response.Flush();
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }

本帖子中包含更多资源

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

x
沙发
发表于 2014-8-12 13:06:01 | 只看该作者
请用空项目重现。

按道理说你的下载按钮已经设置了EnableAjax=false,不会出现这样的对话框
板凳
发表于 2014-8-13 09:50:32 | 只看该作者
把:
Response.Flush();
                HttpContext.Current.ApplicationInstance.CompleteRequest();
改为
Response.End();
试试
地板
发表于 2014-8-13 09:54:11 | 只看该作者
还有
Response.Charset = "GB2312";

Response.ContentEncoding = System.Text.Encoding.UTF8;
字符编码最好一至
5#
发表于 2014-8-22 18:05:39 | 只看该作者
我在下载按钮没设置EnableAjax=false时,出现了相似的问题。设置后,就OK了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-26 00:38 , Processed in 0.047517 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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