小编典典

下载功能在asp.net的更新面板中不起作用

ajax

我有一个包含的Web用户控件FormView。表单视图显示求职者的详细信息。我为“下载简历”链接提供了一个按钮,以便管理员/
HR可以下载简历。我已将此控件放置在包含UpdatePanel的aspx页面中。除了下载链接,其他一切都正常。

我已经给出了“下载链接上的命令”链接按钮,并且有一个函数与该命令相关联以开始下载。

下面是我实现的代码-

//Command on 'Download' link button within FormView
protected void lnkDownload_Command(object sender, CommandEventArgs e)
{
    if (e.CommandName.Equals("Download"))
    {
        StartDownload(e.CommandArgument.ToString());
    }
}

//My routine to download document
//sFileInfo contains filepath$==$mimetype
protected void StartDownload(string sFileInfo)
{
    string[] d = sFileInfo.ToString().Split((new string[] { "$==$" }), StringSplitOptions.None);
    string filename = d[0];
    string docType = d[1];

    System.IO.FileInfo file = new System.IO.FileInfo(d[0]);

    if (file.Exists)
    {
        Response.Clear();
        Response.AddHeader("Content-Disposition", "attachment; filename=" + d[0]);
        Response.AddHeader("Content-Length", file.Length.ToString());
        Response.ContentType = d[1];
        Response.WriteFile(file.FullName);
        Response.End();
    }
    else
    {
        Server.Transfer("~/Mesgbox.aspx?cat=2");
    }
}

如果删除了更新面板,则代码可以正常工作,但是如果使用了更新面板,则会生成脚本错误。

有什么建议....?

感谢您分享您的时间。


阅读 228

收藏
2020-07-26

共1个答案

小编典典

要启动整页回发,请将回发触发器添加到更新面板:

<asp:UpdatePanel runat="server">
    <Triggers>
        <asp:PostBackTrigger ControlID="YourControlID" />
    </Triggers>
    <ContentTemplate>
        .....
2020-07-26