ASP.NET - 서버 컨트롤

서버 컨트롤은 서버가 이해할 수 있는 태그입니다.

Classic ASP의 제한성

아래에 나열된 코드는 이전 장에서 복사한 것입니다:

<html>
<body style="background-color:#e5eecc; text-align:center;">
<h2>Hello CodeW3C.com!</h2>
<p><%Response.Write(now())%></p>
</body>
</html>

위 코드는 Classic ASP의 제한성을 반영합니다: 코드 블록은 출력이 필요한 위치에 배치되어야 합니다.

Classic ASP을 통해는 실행 가능한 코드와 HTML 자체를 분리할 수 없습니다. 이는 페이지를 읽기 어렵게 하고 유지보수도 어렵게 합니다.

ASP.NET - 서버 컨트롤

서버 컨트롤을 통해 ASP.NET은 위에서 설명한 '스파게티 코드' 문제를 해결했습니다.

서버 컨트롤은 서버가 이해할 수 있는 태그입니다.

서버 컨트롤은 세 가지 유형이 있습니다:

  • HTML 서버 컨트롤 - 전통적인 HTML 태그
  • Web 서버 컨트롤 - 새로운 ASP.NET 태그
  • Validation 서버 컨트롤 - 입력 검증에 사용됩니다

ASP.NET - HTML 서버 컨트롤

HTML 서버 컨트롤은 서버가 이해할 수 있는 HTML 태그입니다.

ASP.NET에서의 HTML 요소는 텍스트로 처리됩니다. 이러한 요소를 프로그래밍할 수 있도록 하려면, 이러한 HTML 요소에 추가해야 합니다. runat="server" 속성이 속성은 이 요소가 서버 컨트롤이 되는 것을 나타냅니다. 또한 id 속성을 추가하여 이 서버 컨트롤을 식별해야 합니다. 이 id는 서버 컨트롤을 운영 중에 조작할 수 있는 참조입니다.

주의:모든 HTML 서버 컨트롤은 runat="server" 속성을 가진 <form> 태그 내에 위치해야 합니다. runat="server" 속성은 해당 폼이 서버에서 처리되도록 지시하며, 포함된 컨트롤이 서버 스크립트에 접근할 수 있도록 지시합니다.

아래의 예제에서는 .aspx 파일에서 HtmlAnchor 서버 컨트롤을 선언한 후, 이벤트 처리기에서 HtmlAnchor 컨트롤의 HRef 속성을操作합니다. Page_Load 이벤트는 ASP.NET에서 이해할 수 있는 많은 이벤트 중 하나입니다:

주의:이벤트 처리기(이벤트 핸들러)는 주어진 이벤트에 대해 코드를 실행하는 서브루프닝입니다.

<script runat="server">
Sub Page_Load
link1.HRef="http://www.codew3c.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">CodeW3C.com 방문!</a>
</form>
</body>
</html>

ヒント:수행 가능한 코드 자체가 HTML 외로 이동되었습니다.

ASP.NET - Web 서버 컨트롤

Web 서버 컨트롤은 서버가 이해할 수 있는 특별한 ASP.NET 태그입니다.

HTML 서버 컨트롤과 유사하게, Web 서버 컨트롤도 서버에서 생성되며, 동작하기 위해 runat="server" 속성이 필요합니다. 그러나 Web 서버 컨트롤은 존재하는 HTML 요소에 맵핑되지 않으며, 더 복잡한 요소를 대표합니다.

Web 서버 컨트롤의 문법은 다음과 같습니다:

<asp:control_name id="some_id" runat="server" />

아래의 예제에서는 .aspx 파일에서 Button 서버 컨트롤을 선언한 후, 클릭 이벤트에 이벤트 처리기를 생성하여 버튼에 텍스트를 변경합니다:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="나를 클릭했습니다!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="나를 클릭하세요!" runat="server" OnClick="submit"/>
</form>
</body>
</html>

ASP.NET - Validation 서버 컨트롤

사용자 입력을 검증하는 Validation 서버 컨트롤이 있습니다. 사용자 입력이 검증에 실패하면 사용자에게 오류 메시지를 표시합니다.

각 validation 컨트롤은 특정한 검증 유형을 수행합니다(예: 특정 값 또는 범위의 값을 검증하는 것과 같습니다).

기본적으로, Button, ImageButton 또는 LinkButton을 클릭할 때마다 페이지 검증이 수행됩니다. 특정 버튼 컨트롤이 클릭될 때 검증을 방지하려면 CausesValidation 속성을 false로 설정할 수 있습니다.

Validation 서버 컨트롤의 생성 문법은 다음과 같습니다:

<asp:control_name id="some_id" runat="server" />

아래의 예제에서 우리는 .aspx 파일에서 TextBox 컨트롤, Button 컨트롤 및 RangeValidator 컨트롤을 선언했습니다. 검증이 실패하면 "The value must be from 1 to 100!" 텍스트가 RangeValidator 컨트롤에 표시됩니다:

<html>
<body>
<form runat="server">
<p>1에서 100 사이의 숫자를 입력하세요:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="The value must be from 1 to 100!"
runat="server" />
</p>
</form>
</body>
</html>

이 예제를 표시하다