2
System.Web.UI.UserControl에서 상속받은 추상 UserControlBase 클래스가 있습니다. 마크 업이없는 유일한 클래스입니다. 왜냐하면 나는 추상적 인 기본 클래스이기 때문입니다.ASP.NET - 상위 추상 usercontrol 컨트롤을 정의하지만 어린이 마크 업은 무엇입니까?
이 추상 기본 클래스에서 TextBoxes, DropDownLists 등과 같은 컨트롤을 어떻게 든 정의 할 수 있습니다. 메소드에서 사용하지만, UserControlBase에서 상속 된 children 's 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" />
감사합니다.
protected TextBox txt1;
protected DropDownList ddl1;
이 또한 내가 (단일 * .cs 파일에는 마크 업을) 당신의 UserControlBase 간단한 클래스입니다 제안하지 :
오, 예, 내 잘못입니다. 개인적으로 보호해야합니다. UserControlBase는 단순 클래스 (.cs)입니다. 마크 업에있는 컨트롤이 MyUserControl.designer.cs 클래스에 자체 정의를 만들기 때문에 상위 기본 클래스에 정의 된 컨트롤을 태그에있는 컨트롤과 조인하는 방법을 다루고 있습니다. 나는 그것을 손으로 지울 수는 있지만, MyUserControl 마크 업을 업데이트 할 때마다 그것을하고 싶지 않습니다. –
자, 다음은 UserControlBase에 정의 된 컨트롤 정의를 MyUserControl이 만들지 않도록하기위한 단계입니다. 1. 새 사용자 정의 컨트롤을 만듭니다. 2. * .cs 파일에서 부모를 UserControl에서 UserControlBase로 변경하십시오. 3. 마크 업에 새 TextBox를 추가하고 ID를 txt1로 설정합니다. 4. * .designer.cs를 저장/빌드하고 살펴 봅니다 - txt1에 대한 정의를 포함하지 않습니다. – mayor
고맙습니다. –