2
私はSystem.Web.UI.UserControlから継承した抽象的なUserControlBaseクラスを持っています。 私はそれが抽象基本クラスだから、それはマークアップのないクラスだけです。ASP.NET - 親の抽象的なusercontrolではコントロールを定義しますが、子どものマークアップにはコントロールを定義しますか?
この抽象基本クラスでTextBox、DropDownListsなどのコントロールを何とか定義できますが、それらをメソッドで使用しますが、UserControlBaseから継承した子のusercontrolでマークアップを定義しますか?
擬似コード:
abstract UserControlBase : System.Web.UI.UserControl
{
private TextBox txt1;
private DropDownList ddl1;
private void test()
{
txt1.Text = "test";
ddl1.SelectedIndex = 0;
}
}
MyUserControl : UserControlBase
(markup):
<asp:TextBox ID="txt1" runat="server" />
<asp:DropDownList ID="ddl1" runat="server" />
ありがとうございました。
ああ、はい、私のせいです。彼らはプライベートではなく、保護されるべきです。 UserControlBaseは単純なクラス(.cs)です。 私が扱っているのは、マークアップ内のコントロールがMyUserControl.designer.csクラス内に独自の定義を作成するため、親基本クラスで定義されたコントロールをマークアップ内のコントロールと結合する方法です。手で削除することもできますが、MyUserControlのマークアップを更新するたびにそれを行う必要はありません。 –
ここでは、MyUserControlがUserControlBaseで定義されたコントロールの独自の定義を作成しないようにするための手順を示します。1.新しいユーザーコントロールを作成します。 2. * .csファイルで、親をUserControlからUserControlBaseに変更します。 3.新しいTextBoxをそのマークアップに追加し、そのIDをtxt1に設定します。 4. * .designer.csを保存/ビルドして調べる - txt1の定義は含まれません。 – mayor
ありがとう、素晴らしい! –