0

共通の基本クラスを共有する一連の 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 のプロパティではないため、これは明らかに機能しません。これをサポートするように指定できる別のインターフェイスはありますか、それとも独自に作成する必要がありますか?

4

1 に答える 1

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

よろしく。

于 2012-04-23T05:07:44.400 に答える