AutoPostBack接口

时间:2012-04-23 04:33:46

标签: asp.net properties interface

我正在创建一组Web用户控件,它们将共享一个公共基类。基础将始终包含WebControl(Textbox,DropDownList,CheckBoxList,RadioButtonList,ListBox和其他可能)和RequiredFieldValidator。一切都很好,除了我的抽象InputControl属性(定义为类型WebControl)似乎没有我希望他们拥有的AutoPostBack属性(我认为这是因为并非所有WebControl都支持AutoPostBack)。我希望将此功能完全放在基类中,而不必在每个子类中定义它。它看起来像是:

public abstract WebControl InputControl { get; set; }
public bool AutoPostBack {
    get { return InputControl.AutoPostBack; }
    set { InputControl.AutoPostBack = value; }
}

但是这显然不起作用,因为AutoPostBack不是WebControl的属性。是否有另一个我可以指定支持此接口的接口,还是我需要创建自己的接口?

1 个答案:

答案 0 :(得分:0)

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

问候。