response 后刷新页面

先要求点按钮生成文件,同时按钮变灰,文件生成好直接打开该文件,按钮可用。

一,给按钮增加点击后变灰,页面刷新变可用属性。

打开文件代码如下:

 //写出文件
        System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("gb2312");
        HttpResponse response = HttpContext.Current.Response;
        response.HeaderEncoding = encoding;
        response.Charset = encoding.HeaderName;
        response.Clear();
        response.ContentEncoding = encoding;
        response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(pdfFile.Name));
        response.AddHeader("Content-Length", pdfFile.Length.ToString());
        response.ContentType = "application/pdf";
        response.WriteFile(pdfFile.FullName);
        HttpContext.Current.ApplicationInstance.CompleteRequest();

打开文件

要弹出文件,页面请求会立刻结束。所以这时你把按钮的任何控制都不会执行。

二,aspx页面:增加一个iframe

 <iframe id="ifrm_popMessage" src="" frameborder="0" scrolling="no" align="middle"
        style="position: absolute; z-index: 100; display: none; border: 1px #62A3D2 solid;">
    </iframe>

三,aspx页面:增加JS脚本:

////打开文件
        function OpenPdfFile() {
            document.getElementById(‘ifrm_popMessage‘).src = "OpenPdfFile.aspx?Rnd" + Math.random();
        }

四,生成文件结束后增加如下代码:

 ScriptManager.RegisterStartupScript(this.Page, ClientScript.GetType(), "myscript", "<script>OpenPdfFile();</script>", false);

五,OpenPdfFile 页面代码:

/// <summary>
/// 用来生成PDF文件
/// </summary>
public partial class Admin_IEData_OpenPdfFile : System.Web.UI.Page
{
    /// <summary>
    /// 页面加载
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
            DirectoryInfo di = new DirectoryInfo(Server.MapPath("~/File/"));
            string strFileName = string.Format("{0}({1}){2}.pdf", di.FullName, SessionOperate.getLoginName(), "ddpdf");
            FileInfo pdfFile = new System.IO.FileInfo(strFileName);
            WriteOutFile(pdfFile);
    }

    #region 写出文件
    /// <summary>
    /// 写出文件
    /// </summary>
    /// <param name="pdfFile">文件对象</param>
    /// <returns>返回是否成功</returns>
    protected bool WriteOutFile(FileInfo pdfFile)
    {
        //写出文件
        System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("gb2312");
        HttpResponse response = HttpContext.Current.Response;
        response.HeaderEncoding = encoding;
        response.Charset = encoding.HeaderName;
        response.Clear();
        response.ContentEncoding = encoding;
        response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(pdfFile.Name));
        response.AddHeader("Content-Length", pdfFile.Length.ToString());
        response.ContentType = "application/pdf";
        response.WriteFile(pdfFile.FullName);
        HttpContext.Current.ApplicationInstance.CompleteRequest();
        return true;
    }
    #endregion
}

Iframe页面代码

response 后刷新页面

时间: 2024-10-11 01:44:35

response 后刷新页面的相关文章

Ajax请求数据与删除数据后刷新页面

1.ajax异步请求数据后填入模态框 请求数据的按钮(HTML) <a class="queryA" href="javascript:void(0)" onclick="query(${register.id})"> <span class="glyphicon glyphicon-search"></span></a>  ajax异步请求数据后给id为queryInfo的模态

用HTTP状态码实现提交表单后刷新页面不重复提交

正常情况下,表单提交后如果用户刷新页面会重复提交表单,有些情况下我们不希望表单重复提交,利用HTTP协议中的307状态码重定向页面可以实现这个目的.实例如下: 表单页面代码: <form action="1.php" method="post"> <input type="text" name="na"> <input type="submit" value="提交&

vue打包后刷新页面报错:Unexpected token &lt;

前言 今天遇到了一个很怪的问题,在vue-cli+webpack的项目中,刷新特定页面后页面会变空白,报错为index.html文件中Unexpected token <. 怪点一是开发环境没有问题,只有生产环境有问题,怪点二是只有一个页面有问题,其他页面完全正常 正文 报错截图: 根据上面的情况和以往经验,应该在index.html页面及发生错误的页面定位问题,但均解决不了问题. 最后找到此项目的路由处,经过多次测试,解决问题,也确定了问题原由,原来是:路由中path的值不能以小写m开头,否则

ajax删除数据后刷新页面

代码如图: 理解: 发送请求后删除name 属性为 name 的data;用rem .remove删除: 删除后找到页面上app的数量:定义page = len/12+1; 找到当前页是哪一页,如果len%12 == 0 page = currentPage ; 则 currePage -1;得到心得currentpage ;备用.

Vue更新文件后刷新页面

router.onError(error => { const pattern = /Loading chunk/g; const isChunkLoadFailed = error.message.match(pattern); const targetPath = router.history.pending.fullPath; if (isChunkLoadFailed) { window.history.replaceState({}, document.title, targetPat

浏览器刷新页面后向服务器发出两次请求的问题

1.1.1 现象 在IE和FireFox下刷新页面,发现服务器接收到两次相同的请求. 1.1.2 原因 经过验证,发现是页面中包含了如下代码: <img src=\'#\'" /> 此处src为空字符串,浏览器会认为src指向的是当前页面,由于img元素是根据src来获得图片数据的,因此当浏览器第一次请求后显示页面,在解析到此处时将会产生第二次相同请求. 在开发中src临时为空的情况还是比较常见,当出现服务器接收到多次相同请求时,可以想想是否是这种原因. 1.1.3 解决 确保img

jquery mobile页面跳转后,必须重新刷新页面js方可有效

最近在做个项目,用到jquery mobile,很陌生对他,问题一个个的来,那就要一个个解决,找了一天这个问题,放可明白:首先明白jqm里面页面跳转默认都是通过ajax请求的,必须重新刷新页面js方可有效,也就是js没有起作用,并不是js本身的问题,下面说说解决方法:在使用jQuery Mobile进行Web开发中,当页面跳转时(pageA => pageB),在pageB中引用的JS并未成功运行.因为,JQM并为将整个页面加载到当前的dom中,仅将data-role="page"

子页面提交后刷新父页面问题

在弹出的子页面在做新增和修改操作时, 有时要对父页面进行刷新操作, 可以关闭子页面后刷新父页面, 也可以不关闭子页面刷新父页面,在网上查到了方法, 在这里记一下,方便以后的学习查找. 一. 弹出子页面关闭刷新父页面: 在父页面js中回调window.opener.location.reload(); <script language=JavaScript> window.opener.location.reload(); </script> 二. 不关闭子页面刷新父页面: 在子页面

解决html中刷新页面后checkbox还选中的问题

今天在测试代码时候发现在电脑360浏览器和手机浏览器中的checkbox选中后,按f5刷新页面后checkbox还是选中的. 解决方法是:将 autocomplete="off"  这个配置在from上或者你的checkbox上. <form autocomplete="off"> <input id="butAll" style="vertical-align:middle;" type="che