0

我有一个更新面板,在里面,我放置了许多控件,如 ajax updateprogress、单选按钮和 FileUpload 控件。最后我有两个按钮,一个用于保存数据,另一个用于生成 xml 数据。

在生成 xml 时,我正在以下代码中流回屏幕,

 Response.Clear();
 Response.ClearContent();
 Response.ClearHeaders();
 Response.ContentType = "application/xml";
 Response.AddHeader("Content-Disposition", "attachment; filename=" + filePath);
 Response.TransmitFile(filePath);
 Response.End();

此时,更新进度图像没有关闭。谁能帮我?

4

1 回答 1

0

因为当文件被发送到客户端时响应就结束了。您需要在新页面中执行此操作。

在您的页面中,将您的代码替换为:

Session["filePath"] = filePath;
ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'file.aspx', null, 'height=700,width=760,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);

新页面(称为“file.aspx”):

protected void Page_Load(object sender, EventArgs e)
{
     Response.Clear();
     Response.ClearContent();
     Response.ClearHeaders();
     Response.ContentType = "application/xml";
     Response.AddHeader("Content-Disposition", "attachment; filename=" +  Session["filePath"].ToString());
     Response.TransmitFile(Session["filePath"].ToString());
     Response.End();
}
于 2013-06-10T11:05:43.343 回答