2011-04-06 4 views
1

Asp.Net에 대한 사용자 지정 컨트롤을 작성하는 데는 여러 가지 방법이 있습니다. 어떤 사람들은 System.Web.UI.WebControls.WebControl을 기본 클래스로 사용하고 다른 사람들은 System.Web.UI.Control을 새로운 컨트롤의 기본 클래스로 사용합니다.사용자 지정 컨트롤 작성 : WebControl 또는 Control?

둘 중 하나를 기준으로 선택하는 이유는 무엇입니까?

+2

[\ [ASP.NET \] 가능한 중복 사용자 정의 컨트롤, 서버 컨트롤 및 사용자 지정 컨트롤 간의 차이점은 무엇입니까?] (http://stackoverflow.com/questions/994009/asp-net-what-are- 사용자 - 컨트롤 - 서버 - 컨트롤 - 차이점) – Jacob

+1

@Jacob이 질문은 기본 클래스에 대해 이야기하기 때문에 중복되지 않습니다. 컨트롤 유형 (ascx 대 C# 컨트롤)이 아닙니다. –

+1

또한이 두 가지 모두 사용자 지정 컨트롤의 범주에 속할 것이며, .Controls는 UI가없는 것에 대한 것이고 .WebControls는 UI가있는 컨트롤에 대한 것입니다. –

답변

1

System.Web.UI.WebControls.WebcontrolSystem.Web.UI.Control에서 파생되었으며 스타일 지정 (BackgroundColor, Style 등)에 대한 지원을 추가합니다.

Control에는 기본적으로 지원되지 않으므로 속성을 만들어 직접 구현하고 Render() 메서드에서 처리해야합니다. WebControls에는 특정 공통 속성에 대한 테마 및 도구 상자 지원도 함께 제공됩니다.

+0

좋은 점 ! 하지만 어쨌든 주제를 사용하지 않기 때문에 Control 클래스에 집중할 것입니다. –

1

컨트롤에는 WebControl이 응답 개체를 렌더링 할 때 사용자 인터페이스가 없습니다.

+0

사용자 인터페이스는 Render 메서드를 재정 의하여 컨트롤에 렌더링 할 수 있습니다. –

+1

예,하지만 천문학적으로 불필요한 개발 노력이 필요합니다. 또한 WebControls 클래스는 Visible 속성과 같이 보이는 ASP.NET 컨트롤에서 기대하는 거의 모든 기능을 제공합니다. –

+0

@Ben f. check : http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible.aspx 컨트롤에는 Visible도 있습니다. –

0

다양한 배관 코드가 UI를 생성하기 때문에 컨트롤이 UI 페이지를 렌더링 된 페이지로 표시하려면 System.Web.UI.WebControls.WebContro l을 사용해야합니다 (그래도 해당 UI를 만드는 데 상당한 작업이 필요함).

System.Web.UI.Controls은 렌더링 된 페이지에 UI가없는 경우 (도구 상자에있는 ASP.NET DataSource 컨트롤 중 일부는 페이지에 끌어다 놓을 수 있으며 아무것도 렌더링하지 않고 동작 할 수 있음을 나타냅니다. UI가있는 GridView 컨트롤에 데이터를 가져 오기위한 도관으로 사용).

See this MSDN article.

+0

유일한 차이점은 UI입니까? BackgroundColor와 비슷한 것들이 있습니까? –

+0

차이점 WebControls에는 클라이언트 측에서 .aspx 페이지가 해석 된 후에 UI 컨트롤이 렌더링되는 반면 컨트롤에는 최종 사용자에게 재구성 가능한 UI가 없습니다 (이들은 철저히 배후 코드입니다) –