[ASP.NET 강좌]HTML 서버 컨트롤



웹 서버 컨트롤이란?

웹 서버 컨트롤은 HTML 컨트롤과 마찬가지로 runat="server" 속성을 가진다. 또한 이 컨트롤을 포함한 웹페이지를 읽을 때 ASP.NET 런타임에 의해 서버에서 해당 기능을 처리하게 된다. 상호 작용할 수 있는 서버 이벤트를 발생시킬 수 있다는 부분도 HTML 서버 컨트롤과 동일하다. 더불어 코드 상에서 해당 컨트롤을 참조할 수 있도록 id 속성을 가진다는 것도 같다. 모든 면에서 HTML 서버 컨트롤과 거의 흡사하다.

무엇이 다른가?

HTML 서버 컨트롤과 웹 서버 컨트롤의 명백한 차이점이 있다면 웹 서버 컨트롤은 HTML 태그 이름 형식을 안취한다는 것이다. 이것은 HTML 서버 컨트롤이 HTML 태그와 긴밀히 연관이 있는 것과는 달리 웹 서버 컨트롤은 HTML 태그와 그다지 연관이 없기 때문이다. HTML 서버 컨트롤은 관련 HTML 태그로 클라이언트 측에 결과를 내보내지만 웹 서버 컨트롤은 관련 임무를 수행하기 위해 필요한 여러 HTML 태그를 합성하여 내보낸다. 대개 웹 서버 컨트롤의 기능이 좀 더 복잡하고 하나의 HTML 태그로는 처리 안되는 경우가 많다. 웹 서커 컨트롤의 오브젝트 모델은 일반적으로 HTML 서버 컨트롤보다 더 복잡하고 추상적이다.

어떻게 생겼나?

간단한 웹 서버 컨트롤의 예를 보면 다음과 같다.

<asp:label id="lblSample" runat="server" />


위의 코드는 단순한 레이블 컨트롤(label control)이다. 이 레이블에 텍스트를 할당하면 <span> 태그로 둘러 싸인 텍스트가 출력되어 나온다. 위의 코드를 이용한 가장 간단한 예제는 다음과 같다.

<%@ Page Language="VB" %>
<script runat="server">
        Sub Page_Load(Sender As Object, E As EventArgs)
                lblSample.Text = "Hello World!"
        End Sub
</script>

<html>
<head>
<title>ASP.NET Label Web Control Sample</title>
</head>
<body bgcolor="#FFFFFF">

<asp:label id="lblSample" runat="server" />

</body>
</html>


웹 서버 컨트롤의 예

위의 내용이 너무 단순하다고 생각하는 사람을 위한 또 다른 예제를 하나 보여주겠다.

calendarsample.aspx <%@ Page Language="VB" %>
<script runat="server">
    Sub btnSubmit_Click(Sender As Object, E As EventArgs)
        If calSample.SelectedDates.Count = 0 Then
            frmDateSelection.Visible = True
            lblSelectedDate.Visible = False
        Else
            frmDateSelection.Visible = False
            lblSelectedDate.Visible = True
            lblSelectedDate.Text = "You Selected: " _
                & calSample.SelectedDate
        End If
    End Sub
</script>

<html>
<head>
<title>ASP.NET Calendar Web Control Sample</title>
</head>
<body bgcolor="#FFFFFF">

<div align="center">

<form id="frmDateSelection" action="calendarsample.aspx"
    method="post" runat="server">

<asp:calendar id="calSample" runat="server" />

<asp:button id="btnSubmit" text="Submit Date Selection"
    onClick="btnSubmit_Click" runat="server" />

</form>

<asp:label id="lblSelectedDate" runat="server" />

</div>

</body>
</html>