J'essaie de rendre le spectateur de rapport par programme dans une page personnalisée placée dans un contexte IHttpHandlercontrôle Web Microsoft ReportViewer nécessitant un ScriptManager
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);
}
}
Bien que j'ai le ScriptManager ajouté à la page, mais le moteur d'exécution se plaint le ReportViewer en a besoin, il lève l'exception suivante sur la ligne p.RenderControl (myWriter)
Le contrôle Web Report Viewer nécessite un System.Web.UI.ScriptManager sur le formulaire Web.
Et c'est la classe MyPage
public class MyPage : Page
{
public override void VerifyRenderingInServerForm(Control control)
{
//Empty Method
}
public override bool EnableEventValidation
{
get { return false; }
set { /* Do nothing */}
}
}
Toute aide serait très appréciée. Ceci est fait sur .NET 4 et j'utilise ReportViewer 2010.