ASP.NET - определить элементы управления в родительском абстрактном пользовательском контроле, но в детской разметке? - PullRequest
2 голосов
/ 14 декабря 2011

У меня есть абстрактный класс UserControlBase, унаследованный от System.Web.UI.UserControl. Это только класс, без разметки, потому что это абстрактный базовый класс.

Могу ли я как-то определить элементы управления, такие как TextBoxes, DropDownLists и т. Д. В этом абстрактном базовом классе, использовать их в методах, но определить разметку в дочернем пользовательском контроле, унаследованном от UserControlBase?

псевдокод:

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" />

Спасибо.

1 Ответ

2 голосов
/ 15 декабря 2011

Просто сделайте элементы управления в базовом классе защищенными, а не частными:

protected TextBox txt1;
protected DropDownList ddl1;

Также я предлагаю, чтобы ваш UserControlBase был простым классом (один файл * .cs, без разметки).

...