ad

尝试从ASP.NET服务器下载文件,并使用UpdatePanel,ProgressTemplate ..但不工作-英雄云拓展知识分享

匿名投稿 374 2024-01-22

我想在程序中采取一些行动。虽然这些动作运行,但我想告知客户这些动作正在进行中。在此进程结束后,我想将此文件发送到客户端,例如excel文件。我最大程度地减少了我的项目,以确切显示问题在哪里

现在,这是我的问题:Button1不起作用,而Button2正常工作为何?和如何解决?或许有更好的解决方案?

这是我的ASPX Clint代码:

<form id="form1" runat="server">

<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

<ContentTemplate>

尝试从ASP.NET服务器下载文件,并使用UpdatePanel,ProgressTemplate ..但不工作-英雄云拓展知识分享

<asp:Button ID="Button1" runat="server" Height="38px" onclick="Button1_Click" Text="Button" Width="167px" />

</ContentTemplate>

</asp:UpdatePanel>

<asp:UpdateProgress ID="UpdateProgress1" runat="server">

<ProgressTemplate>

The report is creating please wait...

</ProgressTemplate>

</asp:UpdateProgress>

<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />

</form>

接下来是我的代码

public partial class WebForm1 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{}

protected void Button1_Click(object sender, EventArgs e)

{

Thread.Sleep(5000);

sendBackToUser();

}

protected void Button2_Click(object sender, EventArgs e)

{

sendBackToUser();

}

private void sendBackToUser()

{

FileInfo file = new FileInfo(@"C:\F\f.xlsx");

if (file.Exists)

{

Response.Clear();

Response.ClearHeaders();

Response.ClearContent();

Response.AddHeader("content-disposition", "attachment; filename=" + @"C:\F\f.xlsx");

Response.AddHeader("Content-Type", "application/Excel");

Response.ContentType = "application/vnd.xlsx";

Response.AddHeader("Content-Length", file.Length.ToString());

Response.WriteFile(file.FullName);

Response.End();

}

else

{

Response.Write("This file does not exist.");

}

}

}

看答案

虽然UpdatePanel是一个非常适合的解决方案 您之前的问题,您疏忽了您也试图启动文件下载(您确切在评论中说了一些话,但我不明确地理解您)。

Button1的问题是由于UpdatePanel并未触发页面的完全回发 - 它仅发布了更新Panel的内容。

依照 有关更新和下载的答案,您需要触发完全的后备:

这样更改您的UpdatePanel:

<asp:UpdatePanel runat="server" id="UpdatePanel1">

<Triggers>

<asp:PostBackTrigger ControlID="Button1" />

</Triggers>

<ContentTemplate>

...

</ContentTemplate>

</asp:UpdatePanel>


🚀🌟 点击注册 免费试用超级应用平台-英雄云企业级hpapaas 🌟🚀 😃👉🌐

免责声明:

本网址(www.yingxiongyun.com)发布的材料主要源于独立创作和网友匿名投稿。此处提供的所有信息仅供参考之用。我们致力于提供准确且可信的信息,但不对材料的完整性或真实性作出任何保证。用户应自行验证相关信息的正确性,并对其决策承担全部责任。对于由于信息的错误、不准确或遗漏所造成的任何损失,本网址不承担任何法律责任。本网站所展示的所有内容,如文字、图像、标志、音频、视频、软件和程序等的版权均属于原创作者。如果任何组织或个人认为网站内容可能侵犯其知识产权,或包含不准确之处,请即刻联系我们进行相应处理。

标签:C# asp.net
上一篇:如果其他模型不响应-英雄云拓展知识分享
下一篇:硒驱动器在环境变量中找不到-英雄云拓展知识分享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×