我在哪里可以捕获报告查看器中显示的错误,因为这不是我生成的代码?特别是,我想找出哪个 Object 未设置为实例。
问问题
6449 次
2 回答
2
在 .aspx 页面中,将事件处理程序 OnReportError 添加到 ReportViewer 元素:
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" style="margin-top: 0px" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="817px" Height="554px"
OnReportError="ReportErrorEventHandler">
<LocalReport ReportPath="App_Code\Session_subclasses\CustomerPortal\SGTSAssetCatalog.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1"
Name="DataSet1" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
在 .aspx.cs 页面中添加一个方法来处理事件。该事件包含e.Exception下的Exception:
public void ReportErrorEventHandler(Object sender, ReportErrorEventArgs e)
{
throw e.Exception;
}
在遵循 InnerExceptions 的路径后,我发现,DataSet 中指定的连接字符串存在于我的开发环境中,但不存在于测试环境中......花了足够长的时间来解决这个简单问题 -.-
于 2013-06-03T14:22:30.390 回答
0
以上可能会有所帮助。尝试添加事件 ReportViewer.ReportError 事件。 http://msdn.microsoft.com/enus/library/microsoft.reporting.webforms.reportviewer.reporterror(v=vs.100).aspx
于 2013-06-03T11:10:03.270 回答