【求助】 下载Word时的等待窗口? 无法触发js事件 。。。。

U2008 2009-06-24 10:00:34

public partial class DownFile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
FileStream fileStream = new FileStream(Server.MapPath("readme.doc"), FileMode.Open);
long fileSize = fileStream.Length;

Response.ContentType = "application/octet-stream";
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + HttpUtility.UrlEncode("readme.doc", System.Text.Encoding.UTF8) + "\"");
Response.AddHeader("Content-Length", fileSize.ToString());
byte[] fileBuffer = new byte[fileSize];
fileStream.Read(fileBuffer, 0, (int)fileSize);
fileStream.Close();
Response.Write(fileBuffer);
Response.End();
}
}



----------------------------以上是下载页面。



<TABLE runat=server border="0" id="processBarMask" bgcolor="#cccccc" style="VISIBILITY:hidden; POSITION: absolute" cellspacing="0" cellpadding="0">
<TR>
等待中。。。。。。。。。。。。。。
</TR>
</TABLE>





<SCRIPT language="javaScript">
var firstFlg = "0";

function processStart(){
with(document.all.processBarMask.style){
top = 0;
width = "100%";
height = "100%";
visibility = "visible";
}
document.all.processBarMask.focus();
}

function processEnd(){
document.all.processBarMask.style.visibility = "hidden";
}
</SCRIPT>



--------------------------------------------------------------------------------
下面有列表页中的一按钮,想执行一个文档转换,再提供下载,过程可能二三秒不定,看网络等多种因素。

protected void Button2_Click(object sender, EventArgs e)
{

// Response.Redirect("DownFile.aspx");
Page.ClientScript.RegisterStartupScript(Page.GetType(), "js", "<script language='javascript'>processEnd()</script>");
processBarMask.Style.Add("display", "none");
processBarMask.Visible = false;

}

--------------------------------------------------------------------------------

在调用下载页输出文件流后,服务器端却无法触发关闭等待table , 这个需求如何设计呢??。。
...全文
62 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
浮生若梦丶 2009-06-29
  • 打赏
  • 举报
回复
saisky 2009-06-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 U2008 的回复:]


谢谢楼上的二个兄弟指点。
function processEnd(){
document.all.processBarMask.style.visibility = "hidden";
window.open("DownFile.aspx");
}


似乎是一个不错的方法,不过open似乎有些浏览器会拦载,有其它的打开方式么...顺便了解下:)
[/Quote]

open就可以
shenweiblue 2009-06-28
  • 打赏
  • 举报
回复
ding
U2008 2009-06-25
  • 打赏
  • 举报
回复


谢谢楼上的二个兄弟指点。
function processEnd(){
document.all.processBarMask.style.visibility = "hidden";
window.open("DownFile.aspx");
}


似乎是一个不错的方法,不过open似乎有些浏览器会拦载,有其它的打开方式么...顺便了解下:)
悔说话的哑巴 2009-06-25
  • 打赏
  • 举报
回复
下载那里的代码根本没有放对地方,要把JS那里的代码放到DownFile那里去才可以
zhulong1111 2009-06-25
  • 打赏
  • 举报
回复
顶下
Rail100 2009-06-25
  • 打赏
  • 举报
回复
当你点中下载后,浏览器就会忽略你的js事件,你可以这样:直接在客户端触发js事件后把下载指向新的下载页。



<SCRIPT language="javaScript">
var firstFlg = "0";

function processStart(){
with(document.all.processBarMask.style){
top = 0;
width = "100%";
height = "100%";
visibility = "visible";
}
document.all.processBarMask.focus();
}

function processEnd(){
document.all.processBarMask.style.visibility = "hidden";
window.open("DownFile.aspx");
}
</SCRIPT>

protected void Button2_Click(object sender, EventArgs e)
{

// Response.Redirect("DownFile.aspx");
Page.ClientScript.RegisterStartupScript(Page.GetType(), "js", " <script language='javascript'>processEnd() </script>");
processBarMask.Style.Add("display", "none");
processBarMask.Visible = false;

}
宝_爸 2009-06-25
  • 打赏
  • 举报
回复
Response.Redirect("DownFile.aspx"); 后就转向其它页面了,本页面的代码应该执行不了了吧。
你可以把你的js代码放到DownFile.aspx中去试一试。
xingzhiasa 2009-06-25
  • 打赏
  • 举报
回复
U2008 2009-06-24
  • 打赏
  • 举报
回复

protected void Button2_Click(object sender, EventArgs e)
{

Response.Redirect("DownFile.aspx");
Page.ClientScript.RegisterStartupScript(Page.GetType(), "js", " <script language='javascript'>processEnd() </script>");
processBarMask.Style.Add("display", "none");
processBarMask.Visible = false;

}




Response.Redirect("DownFile.aspx");
后,我想再次触发js的隐藏事件,可以实现么??

62,074

社区成员

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

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

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

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