asp.net response.write 与 UpdateProgress同时使用

海蓝树 2011-02-24 03:19:40
我有一段程序是导出excel了,由于数据量比较大,需要制作一个等该状态,所有用到了

一下代码:

    <asp:ScriptManager ID="ScriptManager1" runat="server">   
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="toexcel" EventName ="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<span style =" font-size:12px">数据更新中...... </span>
</ProgressTemplate>
</asp:UpdateProgress>


但是上面的代码与
response.write 不兼容,应该如何来处理,既能导出excel而且还能有等待的状态画面

我的导出excel的代码如下:

page.Response.Clear();
page.Response.Buffer = true;
page.Response.Charset = "UTF-8";
page.Response.AppendHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + System.DateTime.Now.ToString("_yyMMdd_hhmm") + ".xls");
//page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + System.DateTime.Now.ToString("_yyMMdd_hhmm") + ".xls");
page.Response.ContentEncoding = System.Text.Encoding.UTF8;
page.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
page.EnableViewState = false;
page.Response.Write(dtstr);
page.Response.End();



小弟很急,请各位大哥,大姐多多帮忙啊!!!小弟,先谢过了
...全文
286 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
海蓝树 2011-02-25
  • 打赏
  • 举报
回复
楼上的方法貌似可行,不过很难实现
wangoqoq 2011-02-25
  • 打赏
  • 举报
回复

不懂 来顶顶贴 学习学习
qwertxp 2011-02-24
  • 打赏
  • 举报
回复
生成你的文件完成后,注册一段JS来请求下载文件。
海蓝树 2011-02-24
  • 打赏
  • 举报
回复
请大家名帮忙啊
海蓝树 2011-02-24
  • 打赏
  • 举报
回复
不是下载的时候怎样而是,在生成的时候要有个等待画面
肖无疾 2011-02-24
  • 打赏
  • 举报
回复
下载的时候不是有个进度条么
海蓝树 2011-02-24
  • 打赏
  • 举报
回复
我的方法用流输出的,没有在服务器上产生文件,wuyq11的方法似乎行不通哦
海蓝树 2011-02-24
  • 打赏
  • 举报
回复
如果有其他的ajax方法,好像无法获取导出成功时的状态
truecoffeefox 2011-02-24
  • 打赏
  • 举报
回复
似乎是无法解决,可以不用UpdatePanel,用jquery之类的js库构建ajax效果
子夜__ 2011-02-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xwnxwn 的回复:]

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="toexcel" EventName ="Click" />
</Triggers>
</asp:UpdatePanel>
这个是很强大,但是与……
[/Quote]
你按照那个DEMO做 还是出错吗?
yuanyue0540 2011-02-24
  • 打赏
  • 举报
回复
等待大侠来解决。。。。
mark4ever 2011-02-24
  • 打赏
  • 举报
回复
楼主你是不是把代码写在Page_Load里了?
注意页面事件的顺序。

海蓝树 2011-02-24
  • 打赏
  • 举报
回复
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="toexcel" EventName ="Click" />
</Triggers>
</asp:UpdatePanel>
这个是很强大,但是与response.write结合在一起的时候,就犯难啦
海蓝树 2011-02-24
  • 打赏
  • 举报
回复
请大家注意看我的代码,已经有了
<Triggers>
<asp:AsyncPostBackTrigger ControlID ="toexcel" EventName ="Click" />
</Triggers>
子夜__ 2011-02-24
  • 打赏
  • 举报
回复
实际上就是<Triggers>
<asp:PostBackTrigger ControlID="btnExcel" />
</Triggers>
子夜__ 2011-02-24
  • 打赏
  • 举报
回复
用AJAX 导出
<Triggers>
<asp:PostBackTrigger ControlID="btnExcel" />
</Triggers>


<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:Button ID="btnOK" runat="server" OnClick="btnOK_Click" Text="获取" />
<asp:Button ID="btnExcel" runat="server" OnClick="btnExcel_Click" Text="Excel" /><br />
 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
CellPadding="4" ForeColor="#333333" GridLines="None" Height="282px" OnPageIndexChanging="GridView1_PageIndexChanging"
Width="250px">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnExcel" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
程序加载中Loading
</ProgressTemplate>
</asp:UpdateProgress>
<br />
</form>
</body>
</html>


后台代码

62,016

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧