ASP.NET 4.0

[ASP.NET] HTML 서버 컨트롤

메리 2021. 12. 30. 11:51

HTML 서버 컨트롤은 특별한 변환없이 표준 HTML 태그로 전환할 수 있는 서버 기반 컨트롤로, HTML 태그 속성(attribute)과 연관된 속성(properties)을 제공한다. 예를 들어, HtmlImage 클래스는 <img> 태그의 속성 align, alt, border, src, height, width에 해당하는 Align, Alt, Border, Src, Height, Width 속성을 제공한다. HTML 구문에 익숙하다면 HTML 서버 컨트롤도 쉽게 익힐 수 있을 것이다.

주요 HTML 서버 컨트롤 클래스

HtmlControl 클래스의 속성과 메서드

HTML 컨트롤의 최상위 클래스로, 모든 HTML 컨트롤이 이를 상속 받는다. 따라서 HTML 컨트롤은 HtmlControl이 제공하는 속성과 메서드를 사용할 수 있다.

Attributes, Controls, Disabled, EnableViewState, Page, Parent, Style, TagName, Visible이 있다.

 

HTMLContainerControl 클래스

종료 태그가 필요한 일부 HTML 서버 컨트롤은 HtmlContainerControl 클래스를 상속 받는다. <a>, <form>, <div>와 같은 엘리먼트는 다른 HTML 엘리먼트를 포함하기 때문에 항상 종료 태그를 사용한다. 반면 <ing>나 <input>과 같은 엘리먼트는 홀로 사용할 수 있는 태그다. 따라서 HtmlAnchor, HtmlForm, HtmlGenericControl은 HtmlContainerControl 클래스를 상속 받지만 HtmlInputImage나 HtmlInputButton은 상속받지 않는다.

속성 설명
InnerHtml 컨트롤의 시작 태그와 종료 태그 사이에 오는 HTML이다. 이 속성을 통해 설정된 특수 문자는 해당 HTML 엔티티로 변환되지 않는다. <b>, <i>, <h1>과 같은 형식으로 속성 값이 할당된다.
InnerText 컨트롤의 시작 태그와 종료 태그 사이에 오는 문자열이다. 특수 문자는 자동적으로 HTML 엔티티로 변환된다. 예를 들어 <b>는 &lt;b&gt로 변환된다.

 

HtmlInputControl 클래스

사용자 입력을 얻는 HTML 태그를 표현하기 위한 HtmlInputControl 클래스는 HtmlControl 클래스에서 정의된 속성에 아래와 같은 추가적인 속성을 갖는다.

속성 설명
Type 컨트롤의 input 형을 반환한다. 예를 들어 <input type="file"> 컨트롤은 Type 속성으로 문자열 "file"을 반환한다.
Value 컨트롤의 내용을 문자열로 반환한다.

 

HTML 서버 컨트롤 이벤트

HTML 서버 컨트롤은 ServerClick과 ServerChange 이벤트를 제공한다. ServerClick은 서버에서 처리되는 클릭 이벤트로, 대부분의 버튼 컨트롤에서 제공된다. HTML의 하이퍼링크를 나타내는 HtmlAnchor 컨트롤을 예로 들어보자.

- HtmlAnchor.HRef 속성에 URL을 넣는 방법 : HTML의 <a> 태그의 href 속성에 값을 넣는 것과 똑같은 방법으로 동작한다.

- HtmlAnchor.ServerClick 이벤트를 이용하는 방법 : 사용자가 링크를 클릭하면 ASP.NET 서버는 이벤트 처리기를 수행한 후 링크된 주소로 페이지를 리다이렉트 시킨다.

 

ServerChange 이벤트는 문자열이나 선택 컨트롤에 변화가 생길 때 발생하지만 페이지가 게시(PostBack)되기 전까지는 변경된 내용을 서버로 보내지 않는다. ServerClick 이벤트가 발생하여 변경된 내용들이 서버로 전송되면, 변경된 내용을 갖고 있는 모든 서버 컨트롤에서 ServerChange 이벤트가 발생한다. 따라서 변경된 내용을 갖고 있는 컨트롤끼리의 ServerChange 이벤트 순서는 알 수 없다.

이벤트 이벤트를 발생시키는 컨트롤 클래스
ServerClick HtmlAnchor, HtmlButton, HtmlInputButton, HtmlInputImage, HtmlInputReset
ServerChange HtmlInput Text, HtmlInputCheckBox, HtmlInputRadioButton, HtmlInputHidden, HtmlSelect, HtmlTextArea