【问题标题】:Loading image asp.net with jquery用 jquery 加载图像 asp.net
【发布时间】:2014-04-10 20:03:06
【问题描述】:

我的 .aspx 页面中有这个脚本.....

我还有一些按钮可以将数据从数据库解析到 Gridview,每当我单击按钮时,加载栏都会显示在页面上。

进度加载栏在我将gridview导出为PDF的函数中工作正常,加载栏显示并在打开pdf文件后继续显示,知道如何停止它吗?

<script type="text/javascript" src="../../Styles/jquery.js"></script>
<script type="text/javascript">
function ShowProgress() {
   setTimeout(function () {
    var modal = $('<div />');
    modal.addClass("modal");
    $('body').append(modal);
    var loading = $(".loading");
    loading.show();
    var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
    var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
     loading.css({ top: top, left: left });
                           }, 100);
  }
 $('form').live("submit", function () { ShowProgress(); });
 </script>

在我的 Page_load 中,我有:

if (!IsPostBack)
        {
            string script = "$(document).ready(function () { $('[id*=btnSubmit]').click(); });";
            ClientScript.RegisterStartupScript(this.GetType(), "load", script, true);

        }

当我触发此事件时,我会收到报告但我的栏一直在加载:

   protected void ExportToPDFUsers(object sender, EventArgs e)
    {

        using (StringWriter sw = new StringWriter())
        {
            using (HtmlTextWriter hw = new HtmlTextWriter(sw))
            {
                //To Export all pages
                GridView1.AllowPaging = false;
                this.BindGridUsers();

                GridView1.RenderControl(hw);
                StringReader sr = new StringReader(sw.ToString());
                Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f);
                HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
                PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
                pdfDoc.Open();
                pdfDoc.AddTitle("Member Signature Card Image Users Details");
                pdfDoc.AddCreationDate();
                htmlparser.Parse(sr);
                pdfDoc.Close();

                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition",     "attachment;filename=UsersDetails.pdf");
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Write(pdfDoc);
                Response.End();


            }
        }

【问题讨论】:

    标签: c# javascript jquery asp.net


    【解决方案1】:

    我已经解决了这个问题,并记录了在输出文件作为响应时如何处理进度条/微调器:

    How to display a progress status/spinner when outputting file via Response.ContentType, Response.End?

    【讨论】:

    • 没有其他办法吗?我确实喜欢页面中间的加载栏,它正在工作。就在我导出的时候......
    • 没有其他我知道的方式(在对该主题进行了大量研究之后)。问题是当您将 Response.ContentType 更改为 application/pdf、text/csv 等时,浏览器不再接收 XHTML 响应。相反,它现在接收文件作为响应。那么,您的页面将如何能够检测到该过程已完成?答案有点简单,读取 cookie
    • 我用我的按钮 ID 替换你的 btnDownloadExcel 吗?基本上你有 3 个 JAVA 脚本函数和 1 个对我的函数的编辑。如何实现对我的 ExporttoPdfUsers 函数的编辑?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    相关资源
    最近更新 更多