首先,我想知道这是否可能。我在网上读到关于这个的轻微抱怨,但我并不完全确定。继承自System.Web.UI.UserControl基类
我的场景:我有一个基本图表类,它有一些所有图表都应该有的方法。
public partial class BaseChart : System.Web.UI.UserControl
{
public BaseChart()
{
}
public void ToggleLegend()
{
Chart1.Legends[0].Enabled = !Chart1.Legends[0].Enabled;
}
}
也有一些标记为这个BaseChart - 设置背景颜色等,这些继承BaseChart应该使用这个起点标记和能够建立在其上的所有图表。
话,我想这样做:
public partial class HistoricalLineChart : BaseChart
{
public HistoricalLineChart()
: base()
{
}
public HistoricalLineChart(int reportID)
: base()
{
Chart1.Titles[0].Text = "Hello World";
}
}
其中HistoricalLineChart是没有加价例如web用户控制“HistoricalLineChart.ascx”
问题是在HistoricalLineChart的作用域中Chart1未定义。有什么我在这里失踪?
谢谢。
我认为创建自定义服务器控件是适合您的方式。 – TheGeekYouNeed 2011-02-28 22:05:01
嘿,所以只是看着这(我从来没有与自定义服务器控件一起工作)。我注意到,在演练中,他们正在创建一个名为“WelcomeLabel.cs”的文件。 当我创建我的UserControl时,我使用Page.LoadControl(“foo.ascx”)。我知道LoadControl不能在类上调用 - 这是没有意义的。我能够在自定义服务器控件上调用LoadControl吗?看起来好像所有的'custom'都附加在LoadControl无用的类中。 – 2011-02-28 22:13:58
您无需为自定义服务器控件使用“Page.LoadControl”。这只是部分类需要(它加载了ascx部分)。只需说出Controls.Add(new MyControl()) - 或者像任何类那样实例化它并将它添加到控件集合中。 – 2011-02-28 22:40:02