2011-03-10 2 views
0

Visual Studio 2010에서 ASP.NET 웹 양식을 사용하고 있습니다. 어떻게 UI 컨트롤을 만들고 프로그래밍 방식으로 만들 수 있습니까? 예를 들어 사이드 바 메뉴 등을 별도의 양식 파일에 정의한 다음 결과 페이지에 해당 기능이 상속됩니다. 기본 클래스에서 this.Controls에 새 컨트롤을 추가했지만 컨트롤을 runat="server" 태그 안에 배치해야한다는 페이지 예외가 발생합니다. 이러한 컨트롤을 프로그래밍 방식으로 생성하려면 이러한 태그를 어떻게 태그 안에 삽입합니까?ASP.NET 용 코드 상속

답변

2

당신은 쓰기 :

다음은 결과 페이지 나 당신이 마스터 페이지를 사용하는 것이 더 낫다 생각 만드는 기능

을 상속합니다, 여기 a tutorial on ASP.NET master pages (더 찾기 위해 구글을 사용하여). 그러나 자체는 쉽게 기존의 제어를 복용하고 확장함으로써 달성 될 수있다 상속 :

class MyTextBox : TextBox 
{ 
    // your extensions and overrides 
} 

나중에 쓰기 :

나는 this.Controls에 새 컨트롤을 추가하지만, 페이지를 생성 할 때 runat = "server"태그가있는 컨트롤 안에 컨트롤이 있어야한다는 예외가 발생합니다.

이것은 완전히 관련이 없습니다. 모든 서버 컨트롤에 runat="server" _이 있거나 ASP.NET 파서에서 인식하지 못합니다. 예 : 다음과 같이 :

<!-- existing server control, placed on a page --> 
<asp:Label runat="server" Id="MyOwnLabel" /> 
<!-- your own server control, placed on a page --> 
<my:MyTextBox runat="server" ID="ReallyMyTextBox" /> 
1

나는 다소 혼란 스럽다. 프로그래밍 방식으로 여러 페이지에 요소를 추가하려고하는 것 같습니다. ASP.NET에서는 이것이 필요하지 않습니다.

나는 당신이 찾고있는 것을 믿는다 (그리고 직업에 적합한 도구는 무엇이 될 것인가)는 ASP.NET Master Pages이 될 것이다.

마스터 페이지를 사용하면 일반적인 콘텐츠 (예 : 탐색, 광고 표시 줄 등)로 페이지의 템플릿을 정의 할 수 있습니다.