Asp.net SSRS ReportViewer Web控件-如何不显示;“等待控制”;当呈现为异步时,是否会发生任何问题?
我正在ASP.NET4项目中使用最新(2010)的ReportViewer Web控件。我的客户端希望我抑制/隐藏在获取报告时显示的初始“加载”消息 嗯。。。我知道。。。为什么要隐藏告诉你发生了什么的信息?但是,客户想要客户想要的 我知道,如果使用AsyncRendering=False的报表查看器控件,那么可以将WaitControlDisplayAfter属性设置为一个长得离谱的值 不幸的是,我需要AsyncRendering=True(在一种仪表板上显示多个报告)。这(根据MSDN参见备注部分)将意味着“等待控制”将始终显示。(Grr-r-rr!) 所以问题是,如何不使用异步呈现来显示此控件 (客户问我的另一个问题是,他们希望在加载更新的报告时看到该报告的缓存副本—有人接受吗?) 谢谢,Asp.net SSRS ReportViewer Web控件-如何不显示;“等待控制”;当呈现为异步时,是否会发生任何问题?,asp.net,reporting-services,reportviewer,Asp.net,Reporting Services,Reportviewer,我正在ASP.NET4项目中使用最新(2010)的ReportViewer Web控件。我的客户端希望我抑制/隐藏在获取报告时显示的初始“加载”消息 嗯。。。我知道。。。为什么要隐藏告诉你发生了什么的信息?但是,客户想要客户想要的 我知道,如果使用AsyncRendering=False的报表查看器控件,那么可以将WaitControlDisplayAfter属性设置为一个长得离谱的值 不幸的是,我需要AsyncRendering=True(在一种仪表板上显示多个报告)。这(根据MSDN参见备注
Jaans我找到了一种通过jQuery操作DOM来隐藏加载消息的方法。使用reportviewer将以下脚本添加到页面中实现了此目的:
<script type="text/javascript">
$(function () {
var waitMsg = $("div[id$='AsyncWait_Wait']");
waitMsg.wrap("<div style='display:none; visibility: hidden'></div>");
});
</script>
$(函数(){
var waitMsg=$(“div[id$='AsyncWait\u Wait']);
waitMsg.wrap(“”);
});
从乔·坎普的答案开始,以下内容对我很有用。我将此条目添加到应用程序的CSS文件中:
div[id$='AsyncWait_Wait']
{
display: none !important;
visibility: hidden !important;
}
在IE8、IE9、Chrome 21、FF10、FF15和Safari(版本5-ish、iPad3 iOS 5.1.1)中测试工作。我还推荐上述两种代码,因为它们有效且易于使用。但如果不起作用,请使用此代码。 添加下面的函数,并在页面加载时调用它
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);
}
}
}
那不仅很聪明,而且干净优雅!酷,我不知道你可以在css中使用这个选择器,+1我不推荐这个。至少在启用ASP.NET AJAX的情况下,这样做时会出现Javascript错误。