代码之家  ›  专栏  ›  技术社区  ›  skyfoot

asp.net导出到excel后重新加载页面

  •  0
  • skyfoot  · 技术社区  · 13 年前

    我有一个页面,可以在点击按钮时将文档导出到excel。我需要做的是在excel文档发送后刷新页面。

    我正在尝试注册一个脚本,该脚本将导致页面刷新,但无法在导出到excel的同时进行注册。

    ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "test", "alert('Done');", True)
    
    Response.Clear()
    Response.ClearHeaders()
    Response.AddHeader("Refresh", "3; url=" + Request.RawUrl)
    Response.ContentType = strMimeType
    Response.AddHeader("content-disposition", "attachment; filename=CompleteReport." + strFilenameExtension)
    Response.BinaryWrite(bytFileContent)
    Response.End()
    
    2 回复  |  直到 13 年前
        1
  •  1
  •   speti43    13 年前

    你可以

    每个请求只有一个响应

    (第一个是excel导出,第二个是刷新)。 第一次回应结束后,你什么都做不了。 你必须用另一种方式,用组件等来解决excel导出问题。 出口后你可以打电话

    Response.redirect("your page");
    
        2
  •  0
  •   Asken    13 年前

    基本上,如果你只想重新加载它,这是不能做到的 之后 文件已经下载,因为不可能知道是什么时候。此外,您正在清除响应,然后编写excel,这样脚本甚至不会从服务器返回。下载文件时,浏览器也没有使用刷新标头。

    您可以使用aspx页面来包含以下脚本:

    function onclick() {
      window.location.href = 'loadmyfile.ashx?parameters...';
    
      refreshPage();
    }
    

    然而,上面的内容会在点击后立即刷新页面,所以这可能不是你想要的。

    推荐文章