ASP.NET 서버 컨트롤 개요

이 문서에서는 HTML 서버 컨트롤, 웹 서버 컨트롤, 목록 컨트롤 등과 같은 ASP.NET 서버 컨트롤을 소개합니다.

원래 제품 버전: ASP.NET
원래 KB 번호: 306459

이 문서에서는 다음 Microsoft .NET Framework 클래스 라이브러리 네임스페이스를 참조합니다.

  • System.Web.UI.HtmlControls.HtmlControl
  • System.Web.UI.WebControls.WebControl

ASP.NET 페이지 프레임워크의 서버 컨트롤

ASP.NET 페이지 프레임워크에는 웹에 보다 구조화된 프로그래밍 모델을 제공하도록 설계된 여러 기본 제공 서버 컨트롤이 포함되어 있습니다. 이러한 컨트롤은 다음 기능을 제공합니다.

  • 자동 상태 관리.
  • 개체를 사용하지 않고도 개체 값에 간단하게 Request 액세스할 수 있습니다.
  • 서버 쪽 코드의 이벤트에 대응하여 더 나은 구조의 애플리케이션을 만들 수 있습니다.
  • 웹 페이지에 대한 사용자 인터페이스를 빌드하는 일반적인 방법입니다.
  • 출력은 브라우저의 기능에 따라 자동으로 사용자 지정됩니다.

기본 제공 컨트롤 외에도 ASP.NET 페이지 프레임워크는 사용자 정의 컨트롤 및 사용자 지정 컨트롤을 만드는 기능도 제공합니다. 사용자 컨트롤 및 사용자 지정 컨트롤은 기존 컨트롤을 향상시키고 확장하여 훨씬 더 풍부한 사용자 인터페이스를 빌드할 수 있습니다.

HTML 서버 컨트롤

HTML 서버 컨트롤은 특성을 포함하는 HTML 요소입니다 runat=server . HTML 서버 컨트롤에는 HTML 출력과 해당 HTML 태그와 동일한 속성이 있습니다. 또한 HTML 서버 컨트롤은 자동 상태 관리 및 서버 쪽 이벤트를 제공합니다. HTML 서버 컨트롤은 다음과 같은 이점을 제공합니다.

  • HTML 서버 컨트롤은 해당 HTML 태그를 사용하여 일대일로 매핑됩니다.
  • ASP.NET 애플리케이션이 컴파일되면 특성이 있는 runat=server HTML 서버 컨트롤이 어셈블리로 컴파일됩니다.
  • 대부분의 컨트롤에는 컨트롤에 가장 일반적으로 사용되는 이벤트에 대한 가 포함됩니다 OnServerEvent . 예를 들어 컨트롤에는 <input type=button> 이벤트가 있습니다 OnServerClick .
  • 특정 HTML 서버 컨트롤로 구현되지 않은 HTML 태그는 서버 쪽에서 계속 사용할 수 있습니다. 그러나 어셈블리 HtmlGenericControl에 로 추가됩니다.
  • ASP.NET 페이지가 다시 게시되면 HTML 서버 컨트롤은 해당 값을 유지합니다.

기본 클래스에는 System.Web.UI.HtmlControls.HtmlControl 모든 공통 속성이 포함됩니다. HTML 서버 컨트롤은 이 클래스에서 파생됩니다.

HTML 서버 컨트롤을 사용하려면 다음 구문을 사용합니다(컨트롤을 HtmlInputText 예로 사용).

<input type="text" value="hello world" runat=server />

ASP.NET 사용할 수 있는 개별 HTML 서버 컨트롤에 대한 자세한 내용은 다음 웹 사이트를 참조하세요.

웹 서버 컨트롤

웹 컨트롤에는 표준화된 속성 이름 집합이 있다는 점을 제외하고 웹 컨트롤은 Button, TextBox 및 Hyperlink와 같은 HTML 서버 컨트롤과 유사합니다. 웹 서버 컨트롤은 다음과 같은 이점을 제공합니다.

  • 제조업체와 개발자가 사용자 인터페이스를 자동으로 생성하는 도구 또는 애플리케이션을 더 쉽게 빌드할 수 있도록 합니다.
  • HTML 컨트롤의 작동 방식에 대한 지식이 덜 필요하고 오류 발생 가능성이 낮아지는 대화형 웹 양식을 만드는 프로세스를 간소화합니다.

기본 클래스에는 System.Web.UI.WebControls.WebControl 모든 공통 속성이 포함됩니다. 대부분의 웹 서버 컨트롤은 이 클래스에서 파생됩니다.

웹 서버 컨트롤을 사용하려면 다음 구문(TextBox 컨트롤을 예로 사용)을 사용합니다.

<asp:textbox text="hello world" runat=server />

웹 서버 컨트롤은 다음 네 가지 범주로 나눌 수 있습니다.

  • 기본 웹 컨트롤
  • 유효성 검사 컨트롤
  • 목록 컨트롤
  • 리치 컨트롤

기본 웹 컨트롤

기본 웹 컨트롤은 HTML 서버 컨트롤과 동일한 기능을 제공합니다. 그러나 기본 웹 컨트롤에는 프로그래밍할 수 있는 추가 메서드, 이벤트 및 속성이 포함됩니다.

ASP.NET 사용할 수 있는 개별 웹 컨트롤에 대한 자세한 내용은 다음 웹 사이트를 참조하세요.

유효성 검사 컨트롤

유효성 검사 컨트롤은 페이지의 다른 컨트롤에 입력된 값의 유효성을 검사하는 데 사용됩니다. 유효성 검사 컨트롤은 페이지가 표시되는 브라우저의 기능에 따라 클라이언트 쪽 유효성 검사, 서버 쪽 유효성 검사 또는 둘 다를 수행합니다. 유효성 검사 컨트롤은 다음과 같은 이점을 제공합니다.

  • 유효성을 검사하려는 각 컨트롤과 하나 이상의 유효성 검사 컨트롤을 연결할 수 있습니다.
  • 유효성 검사는 페이지 양식이 제출될 때 수행됩니다.
  • 유효성 검사가 수행되어야 하는지 여부를 프로그래밍 방식으로 지정할 수 있습니다. 이는 사용자가 모든 필드에 유효한 데이터를 채우지 않고도 종료할 수 있도록 취소 단추를 제공하려는 경우에 유용합니다.
  • 유효성 검사 컨트롤은 클라이언트 쪽 또는 서버 쪽에서 유효성 검사를 수행해야 하는지 여부를 자동으로 검색합니다.

참고

클라이언트 쪽 유효성 검사는 포스트백 작업이 완료되기 전에 오류를 catch합니다. 따라서 단일 페이지에 클라이언트 쪽 및 서버 쪽 유효성 검사 컨트롤의 조합이 있는 경우 클라이언트 쪽 유효성 검사에 실패하면 서버 쪽 유효성 검사가 선점됩니다. ASP.NET 사용할 수 있는 개별 유효성 검사 컨트롤에 대한 자세한 내용은 다음 웹 사이트를 참조하세요.

목록 컨트롤

목록 컨트롤은 컬렉션에 대한 바인딩을 지원하는 특수 웹 서버 컨트롤입니다. 목록 컨트롤을 사용하여 사용자 지정된 템플릿 형식으로 데이터 행을 표시할 수 있습니다. 모든 목록 컨트롤은 컬렉션에 바인딩하는 데 사용되는 DataSource 및 DataMember 속성을 노출합니다.

목록 컨트롤은 IEnumerable, ICollection 또는 IListSource 인터페이스를 지원하는 컬렉션에만 바인딩할 수 있습니다. 예를 들어 Visual C# .NET 샘플 페이지는 다음과 같이 표시됩니다.

<%@ Page Language="C#" %>
<script runat="server">
    Public void Page_Load()
    {
        String[] myStringArray = new String[] {"one","two","three"};
        rptr.DataSource = myStringArray;
        rptr.DataBind();
    }
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Visual Basic .NET 샘플 페이지는 다음과 같이 표시됩니다.

<%@ Page Language="vb" %>
<script runat="server">
    public sub Page_Load()
        Dim myStringArray as String()
        myStringArray = new String() {"one","two","three"}
        rptr.DataSource = myStringArray
        rptr.DataBind()
    end sub
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

출력은 다음과 같이 표시됩니다.

  • 없음
  • 3개

ASP.NET 사용할 수 있는 개별 목록 컨트롤에 대한 자세한 내용은 다음 웹 사이트를 참조하세요.

다양한 컨트롤

이전 컨트롤 외에도 ASP.NET 페이지 프레임워크는 풍부한 컨트롤이라는 몇 가지 작업별 컨트롤을 제공합니다. 리치 컨트롤은 여러 HTML 요소로 빌드되며 풍부한 기능을 포함합니다. 풍부한 컨트롤의 예로는 Calendar 컨트롤과 AdRotator 컨트롤이 있습니다.

ASP.NET 사용할 수 있는 개별 서식 있는 컨트롤에 대한 자세한 내용은 다음 웹 사이트를 참조하세요.

사용자 컨트롤

종종 추가 코드를 작성하지 않고도 웹 양식의 사용자 인터페이스를 다시 사용할 수 있습니다. ASP.NET Web Forms 사용자 컨트롤로 변환하여 이 작업을 수행할 수 있습니다. .ascx 파일 확장명이 있는 사용자 컨트롤은 단일 웹 양식 내에서 여러 번 사용할 수 있습니다.

웹 양식을 사용자 컨트롤로 변환하려면 다음 단계를 수행합니다.

  1. 모든 <html>, , <head><body><form> 태그를 제거합니다.
  2. 지시문이 @ Page 페이지에 표시되면 으로 @ Control변경합니다.
  3. 지시문에 className@ Control 특성을 포함하면 인스턴스화할 때 사용자 컨트롤이 강력하게 입력됩니다.
  4. 컨트롤에 설명 파일 이름을 지정하고 파일 확장명을 .aspx .ascx로 변경합니다.

사용자 컨트롤에 대한 자세한 내용은 사용자 컨트롤 Web Forms 참조하세요.

사용자 지정 컨트롤

기본 제공 웹 컨트롤 외에도 ASP.NET 사용자 지정 컨트롤을 만들 수 있습니다. 다음 시나리오 중 하나에 직면하는 경우 사용자 지정 컨트롤을 개발하는 것이 유용할 수 있습니다.

  • 두 개 이상의 기본 제공 웹 컨트롤의 기능을 결합해야 합니다.
  • 기본 제공 컨트롤의 기능을 확장해야 합니다.
  • 현재 존재하는 컨트롤과 다른 컨트롤이 필요합니다.

사용자 지정 컨트롤 개발에 대한 자세한 내용은 다음 topics 참조하세요.