zoukankan      html  css  js  c++  java
  • UpdatePanel无法导出下载文件

    protected void Page_Load(object sender, EventArgs e)
    { 
        ScriptManager sm = Page.Master.FindControl("ScriptManager1") as ScriptManager;
        if (sm != null)
        {
            foreach (GridViewRow item in gvInvoiceHistory.Rows)
            {
                LinkButton lbtnTemp = item.FindControl("btnInvoiceNumber") as LinkButton;
                if (lbtnTemp != null)
                {
                    sm.RegisterPostBackControl(lbtnTemp);
                }
            }
        }  
    }
    
    protected void btnInvoiceNumber_OnClick(object sender, EventArgs e)
    {
        LinkButton btnTemp = sender as LinkButton;
        if (btnTemp != null)
        {
            var path = ConfigurationManager.AppSettings["InvoicePdfPath"];
            var fileName = btnTemp.Text.Trim() + ".pdf";
            if (!FileHandler.DownLoadFile(path, fileName))
            {
                var msg = GetLocalResourceObject("InvoiceIsNotAvailable").ToString();
                ScriptManager.RegisterStartupScript(upMain, upMain.Page.GetType(), "DownLoadFile", string.Format("alert('{0}');", msg), true);
     
                //如果不存在就跳转,参见 http://www.cnblogs.com/vipsoft/p/3627683.html
          //string url = "http://www.vipsoft.com.cn";
          //ResponseRedirect.Redirect(Response, url, "_blank", "'toolbar=0,scrollbars=1,status=0,menubar=0,resizable=1,top=0,left=0,height=800,width=1000");}
    
    
    
            }
        }
    }
    
    //Updatepanel 会有异常 参考下面的链接查看下载方法
    public static bool DownLoadFile(string path,string fileName)
    {
        bool result = false;
        string filePath = HttpContext.Current.Server.MapPath(path + fileName);
        if (File.Exists(filePath))
        {
            FileInfo fileInfo = new FileInfo(filePath);
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ClearContent();
            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
            HttpContext.Current.Response.AddHeader("Content-Length", fileInfo.Length.ToString());
            HttpContext.Current.Response.AddHeader("Content-Transfer-Encoding", "binary");
            HttpContext.Current.Response.ContentType = "application/octet-stream";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
            HttpContext.Current.Response.WriteFile(fileInfo.FullName);
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.End();
            result = true;
        }
        return result;
    }

    ScriptManager1 放在 MasterPage中,查找 ScriptManager1 时,
    Page.Master.FindControl("ScriptManager1") as ScriptManager;

    FileHandler文件下载:http://www.cnblogs.com/vipsoft/p/3521958.html

    如果不存在就跳转,参见 http://www.cnblogs.com/vipsoft/p/3627683.html

  • 相关阅读:
    [SSRS] Use Enum values in filter expressions Dynamics 365 Finance and Operation
    Power shell deploy all SSRS report d365 FO
    display method in Dynamics 365 FO
    How To Debug Dynamics 365 Finance and Operation
    Computed columns and virtual fields in data entities Dynamics 365
    Azure DevOps for Power Platform Build Pipeline
    Create readonly entities that expose financial dimensions Dynamics 365
    Dataentity call stack dynamics 365
    Dynamics 365 FO extension
    Use singletenant servertoserver authentication PowerApps
  • 原文地址:https://www.cnblogs.com/vipsoft/p/3298299.html
Copyright © 2011-2022 走看看