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
}
我想自定义 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
}