ASP.NET - 서버 컨트롤
- 이전 페이지 WebForms 페이지
- 다음 페이지 WebForms 이벤트
서버 컨트롤은 서버가 이해할 수 있는 태그입니다.
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>
- 이전 페이지 WebForms 페이지
- 다음 페이지 WebForms 이벤트