Web 表单 ReportViewerControl 自定义

Web Form ReportViewerControl Customization

我想自定义 asp.net Web 表单 reportviewer 控件。特别是,我想覆盖 reportviewer 控件中的默认值。这怎么可能呢?例如,我想要这样的东西。

我不是在寻找这样的东西,但 reportviewer 中的默认异步渲染方法是 public bool AsyncRendering 而不是 public虚拟布尔 AsyncRendering

<crv:ReportViewer runat="server" AsyncRendering="false" />

相反,我正在寻找这样的东西。

public class CustomReportViewer : ReportViewerControl
{
   public override bool AsyncRendering
   {
       if(AsyncRendering.HasNoValue)
       {
          return false;
       }
       else
       {
          return true;
       }
   }
}

<crv:CustomReportViewer runat="server" />

你不能覆盖 属性 因为它不是虚拟的,你可以像你一样创建一个 CustomReportViewer:

public class CustomReportViewer : Microsoft.Reporting.WebForms.ReportViewer
{
   //You can create a customreportviewer like you did 
}

但是,这里的诀窍是创建您自己的复合控件,其中包含此 CustomReportViewer。

[ToolboxData("<{0}:MyReportViewerControl runat=server></{0}:MyReportViewerControl>")]
public class MyReportViewerControl : CompositeControl, IPostBackEventHandler, IPostBackDataHandler
{
     //additional code
     protected override void CreateChildControls()
     {
         //Here add you customized reportviewer
         var rv = new CustomReportViewer();
         rv.AsyncRendering = false;
     }
     //additional code
}