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

SSRS ReportViewer Web控件-当呈现为异步时,如何根本不显示“WaitControl”?

  •  4
  • Jaans  · 技术社区  · 14 年前

    是 啊。。。我知道。。。为什么要隐藏告诉你发生了什么的信息?但是,客户想要客户想要的。

    我知道如果使用AsyncRendering=False的报表查看器控件,那么可以将WaitControlDisplayAfter属性设置为一个非常长的值。

    http://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.reportviewer.waitcontroldisplayafter.aspx 参见备注部分)将意味着“等待控制”将始终显示(Grr-r-rr!)

    所以问题是,我该怎么做

    (客户问我的另一个问题是,他们想在加载更新的报告时看到该报告的缓存副本—有人接受这个报告吗?)

    雅安人

    3 回复  |  直到 14 年前
        1
  •  7
  •   Joe Camp    13 年前

    我找到了一种通过jQuery操作DOM来隐藏加载消息的方法。将以下脚本添加到带有reportviewer的页面中实现了以下目的:

    <script type="text/javascript">
        $(function () {
            var waitMsg = $("div[id$='AsyncWait_Wait']");
            waitMsg.wrap("<div style='display:none; visibility: hidden'></div>");
        });
    </script>
    
        2
  •  4
  •   leqid    12 年前

    从乔·坎普的回答开始,以下几点对我很有用。我将此条目添加到应用程序的CSS文件中:

    div[id$='AsyncWait_Wait']
    {
        display: none !important;
        visibility: hidden !important;
    }
    

        3
  •  -1
  •   Mahdi    11 年前

    我也会推荐以上两个代码,因为它们是有效的,可以使用。但如果它不工作使用这一个。 添加下面的函数,并在页面加载时调用它。

     private void HideLoadImage(Control ReportViewer)
    {
        foreach (Control c in ReportViewer.Controls)
        {
            if ((string.Compare(c.ID, "AsyncWait") == 0))
            {        
                c.Visible = false;
    
                }
            if (c.HasControls())
            {
                HideLoadImage(c);
            }
        }
    }