我正在创建一组Web用户控件,它们将共享一个公共基类。基类将始终包含一个WebControl (可以是Textbox、DropDownList、CheckBoxList、RadioButtonList、ListBox或其他)和一个RequiredFieldValidator。一切都很好,除了我的抽象InputControl属性(定义为WebControl类型)似乎没有我希望它们都具有的AutoPostBack属性(我假设这是因为并不是所有的WebControls都支持AutoPostBack)。我希望将此功能完全放在基类中,而不必在每个子类中定义它。它看起来是这样的:
public abstract WebControl InputControl { get; set; }
public bool AutoPostBack {
get { return InputControl.AutoPostBack; }
set { InputControl.AutoPostBack = value; }
}但这显然行不通,因为AutoPostBack不是WebControl的属性。我是否可以指定另一个接口来支持这一点,或者我需要创建自己的接口?
发布于 2012-04-23 13:07:44
autopostback不在任何基类中,因为只有某些控件需要autopostback属性。你能做的就是使用泛型
public class MyBaseUC<T> : System.Web.UI.UserControl
{
public abstract T InputControl { get; set; }
}
public partial class WebUserControl1 : MyBaseUC<TextBox>
{
protected void Page_Load(object sender, EventArgs e)
{
InputControl.AutoPostBack = false;
}
}致以问候。
https://stackoverflow.com/questions/10274824
复制相似问题