我正在尝试添加外部照片作为徽标以及report.rdlc文件上的报告.我有这个错误
尚未为此报告设置enable externalimages属性
?
这是我的代码.
try
{
this.pedidosTableAdapter.Connection.ConnectionString = con.MysqlConnect();
this.pedidosTableAdapter.Fill(this.fabricacaoDataSet8.pedidos, Pages.relatorios.num);
this.reportViewer1.RefreshReport();
}
catch { }
// for external image
this.reportViewer1.LocalReport.EnableExternalImages = true;
ReportParameter parm = new ReportParameter();
parm=(new ReportParameter("path", @"C:\logo.jpg",true));
this.reportViewer1.LocalReport.SetParameters(parm);
this.reportViewer1.Refresh();
Run Code Online (Sandbox Code Playgroud)
这里的问题实际上是,您this.reportViewer1.RefreshReport();在设置之前调用this.reportViewer1.LocalReport.EnableExternalImages = true;。
这里的顺序很重要。
我有经验,当您使用Code启用外部映像时,它在本地/开发环境中有效,但是在服务器上部署时却不起作用,并且报告会引发错误:
“尚未为此报告设置启用外部图像属性”
为了解决此问题,EnableExternalImages="true"请在使用ReportViewer控件的ASPX或设计文件中使用属性,它将很好地工作。
这里提到,图片的路径必须是URL格式,即@"file:///C:\logo.jpg"
或者你可以尝试
var filepath = new Uri("C:\logo.jpg");
var path = new ReportParameter("Path", filepath.AbsolutePath);
this.reportViewer1.LocalReport.SetParameters(new ReportParameter {Path = path});
Run Code Online (Sandbox Code Playgroud)