.net ReportViewer控件加载指示器?
是否可以更改ReportViewer控件的图像(绿色旋转对象) 目前我正在隐藏它并重叠一个进度条(这是WinForms而不是ASP控件)。。。好像有点啰嗦.net ReportViewer控件加载指示器?,.net,reportviewer,.net,Reportviewer,是否可以更改ReportViewer控件的图像(绿色旋转对象) 目前我正在隐藏它并重叠一个进度条(这是WinForms而不是ASP控件)。。。好像有点啰嗦 谢谢:)好吧,你给了我一个挑战,我的朋友。但我知道怎么做了。下面是我用来实现这一点的代码: Private Sub CustomizeRV(ByVal ctrl As Control) For Each c As Control In ctrl.Controls If TypeOf c Is PictureBox Th
谢谢:)好吧,你给了我一个挑战,我的朋友。但我知道怎么做了。下面是我用来实现这一点的代码:
Private Sub CustomizeRV(ByVal ctrl As Control)
For Each c As Control In ctrl.Controls
If TypeOf c Is PictureBox Then
Dim pb As PictureBox = DirectCast(c, PictureBox)
pb.Image = YOURNEWIMAGEHERE
End If
If c.HasChildren Then
CustomizeRV(c)
End If
Next
End Sub
在表单加载事件期间调用此函数,它将根据您指定的内容重新配置加载图像(将函数传递给ReportViewer控件)。递归调用该函数,直到找到picturebox。ReportViewer控件中只有一个picturebox,因此您不必担心找到那个特定的picturebox。再次感谢Jon提供的原始VB.NET代码。。。这是他的答案
对于那些认为这是针对WinForms而不是ASP.NET的错误,这是针对web的相同解决方案:
Private Sub CustomizeRV(ByVal ctrl As Control)
For Each c As Control In ctrl.Controls
If String.Compare(c.ID, "AsyncWait")=0 Then
DirectCast(c.Controls(0).Controls(0), Image).ImageUrl = ResolveUrl("~/images/PleaseWait.gif")
End If
If c.HasControls Then CustomizeRV(c)
Next
End Sub
非常感谢分享这个问题。刚刚将上面的vb.net代码转换为c#.net并更改了图像的后搁浅颜色
private void CustomizeRV(Control ReportViewCntr)
{
foreach (Control c in ReportViewCntr.Controls)
{
if ((string.Compare(c.ID, "AsyncWait") == 0))
{
Image i = (Image)c.Controls[0].Controls[0];
i.ImageUrl = ResolveUrl("~/Images/loading.gif");
//i.BackColor = System.Drawing.Color.Gray;
i.BackColor = System.Drawing.ColorTranslator.FromHtml("#e6e6e6");
}
if (c.HasControls())
{
CustomizeRV(c);
}
}
}
感谢您提供代码示例以替换AsyncWait中的图像控件。在我将report viewer控件升级到最新版本(即15.0.0.0版)之前,它一直工作得非常好 升级后,@Pratik代码示例中位于“c.Controls[0].Controls[0]”位置的控件不再是图像控件。因此,它抛出一个错误,表示无法将LiteralControl转换为image 我尝试使用上面的代码,并进行了一些小的编辑,如下所示:
protected void CustomizeRV(Control ReportViewCntr)
{
foreach (Control c in ReportViewCntr.Controls)
{
if ((string.Compare(c.ID, "AsyncWait") == 0))
{
c.Controls[0].Controls.RemoveAt(0);
Image i = new Image();
i.ImageUrl = ResolveUrl("~/images/loading.gif");
//i.BackColor = System.Drawing.Color.Gray;
i.BackColor = System.Drawing.ColorTranslator.FromHtml("#e6e6e6");
c.Controls[0].Controls.AddAt(0, i);
}
if (c.HasControls())
{
CustomizeRV(c);
}
}
}
然而,它并没有像预期的那样工作
有没有其他方法可以用gif图像替换新的文字控件?哈哈,是的!我正在使用DevExpress WinForm的东西。。。有一个光滑的黑色主题与这个愚蠢的(像素化)绿色的东西在中间。工作得很好。我已将您的代码转换为C#以用于此项目(我会将其作为答案包含在内,以便格式化)-但谢谢!我不明白为什么他们一开始就没有选择这个?
protected void CustomizeRV(Control ReportViewCntr)
{
foreach (Control c in ReportViewCntr.Controls)
{
if ((string.Compare(c.ID, "AsyncWait") == 0))
{
c.Controls[0].Controls.RemoveAt(0);
Image i = new Image();
i.ImageUrl = ResolveUrl("~/images/loading.gif");
//i.BackColor = System.Drawing.Color.Gray;
i.BackColor = System.Drawing.ColorTranslator.FromHtml("#e6e6e6");
c.Controls[0].Controls.AddAt(0, i);
}
if (c.HasControls())
{
CustomizeRV(c);
}
}
}