0
votes

I would like to customize asp.net web form reportviewer control. Particularly, I would like to override the default value in reportviewer control. How could this be done? I would like to have something like this for example.

I am not looking for something like this but the default asyncrendering method in reportviewer is public bool AsyncRendering and not public virtual bool AsyncRendering

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

Instead, I am looking for something like this.

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

<crv:CustomReportViewer runat="server" />
1

1 Answers

1
votes

Well as you cannot override the property because it is not virtual, what you can do it create a CustomReportViewer like you did:

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

But then, the trick here would be to create your own composite control with this CustomReportViewer inside.

[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
}