【发布时间】:2011-02-17 05:52:07
【问题描述】:
我正在尝试在放置在 IHttpHandler 上下文中的自定义页面中以编程方式呈现报表查看器
ReportViewer rv = new ReportViewer();
ReportDataSource rds = new ReportDataSource();
rds.Name = "Report";
rv.LocalReport.ReportPath = "Report.rdlc";
rds.Value = SomeReportObject;
rv.LocalReport.DataSources.Add(rds);
rv.LocalReport.Refresh();
ScriptManager scriptHandler = new ScriptManager();
MyPage p = new MyPage();
p.Controls.Add(scriptHandler);
p.Controls.Add(rv);
using (TextWriter myTextWriter = new StringWriter())
{
using (HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter))
{
p.RenderControl(myWriter);
}
}
虽然我已将 ScriptManager 添加到页面,但运行时抱怨 ReportViewer 需要一个,但它在 p.RenderControl(myWriter) 行抛出以下异常
报表查看器 Web 控件需要 Web 表单上的 System.Web.UI.ScriptManager。
这是 MyPage 类
public class MyPage : Page
{
public override void VerifyRenderingInServerForm(Control control)
{
//Empty Method
}
public override bool EnableEventValidation
{
get { return false; }
set { /* Do nothing */}
}
}
任何帮助将不胜感激。这是在 .NET 4 上完成的,我使用的是 ReportViewer 2010。
【问题讨论】:
标签: c# ajax visual-studio-2010 .net-4.0 reportviewer