我正在将动态指定的用户控件加载到父(用户)控件中的占位符中,如下所示:
// dynamically load instance of chosen chart control
string chartClassName = ConfigurationManager.AppSettings["ChartControlClass"];
_chartControl = (IOutputChart)LoadControl(chartClassName + ".ascx");
// add to place-holder
if (chartClassName == "OutputChart_Dundas") phChart.Controls.Add((OutputChart_Dundas)_chartControl);
else if (chartClassName == "OutputChart_Microsoft") phChart.Controls.Add((OutputChart_Microsoft)_chartControl);
else if (chartClassName == "OutputChart_Telerik") phChart.Controls.Add((OutputChart_Telerik)_chartControl);
显然,不必_chartControl
每次都显式地转换变量会更好——有没有更干净的方法?每个用户控件实现IOutputChart
接口;但是,我不能直接使用它,因为Controls.Add()
需要一个Control
对象。