回发后没有获得更新的会话值

时间:2015-11-04 08:54:21

标签: javascript jquery asp.net session

目标:我想在报告下载后显示加载程序。 为此,我创建了一个连续检查会话值的函数,如果会话值为“true”,我隐藏加载器意味着生成报告,否则连续显示加载器。找到以下代码:

<script type="text/javascript">
        var interval = 0;
        var session = '';
// called when click on ViewReport button
        function StartCheckingLoaderSessionValue() {
            interval = setInterval(function() { CheckLoaderSessionValue() }, 1000)
        }


        function CheckLoaderSessionValue() {
            session = '<%= Session["IsReportGenerated"]%>'
            alert(session);
            if (session == "false") {
                document.getElementById("divLoader").style.display = 'block';
            }
            else {
                document.getElementById("divLoader").style.display = 'none';
                clearInterval(interval);
            }
</script>

以下是在 ViewReport 按钮上生成Excel报告文件的方法点击

private void DownloadExcelFile(string m_strFileName)
    {
        try
        {
            string PathToExcelFile = m_strFileName;
            FileInfo file = new FileInfo(PathToExcelFile);
            string ff = file.Name.Replace(".xlsm",".xls");
            if (file.Exists)
            {
                Response.Clear();
                Response.ClearHeaders();
                Response.ClearContent();
                Response.AddHeader("content-disposition", "attachment; filename="+ff+"");
                Response.AddHeader("Content-Type", "application/Excel");
                Response.ContentType = "application/vnd.xls";
                Response.AddHeader("Content-Length", file.Length.ToString());
                Response.WriteFile(file.FullName);
                //Response.Flush();
                HttpContext.Current.Session["IsReportGenerated"] = "true";
                //HttpContext.Current.Response.End();
                Response.End();
                Response.Close();
                Context.ApplicationInstance.CompleteRequest();
                Random r = new Random();
                int rid = r.Next();
            }
            else
            {      
            }
        }
        finally
        {           

        }
    }

在上面的方法中,我设置了 Session [“IsReportGenerated”] =“true”的值,这意味着报告已生成,正如您在我的javascript代码中看到的,我隐藏了我的 divLoader

但问题是在警报(会话)中,我总是在 ViewReport 按钮后“false”没有“真实”点击。

注意:我无法使用 UpdateProgress 因为此功能在另一个页面上,所以我从未在同一页面上获得回发完成事件。

如果此问题与回发有关。请帮忙。

提前致谢。

0 个答案:

没有答案