lecture Home > ASP.NET > 악꽁이의 ASP.NET 강의

악꽁이의 ASP.NET 강의

   강좌 최초 작성일 : 2002년 03월 05일
   강좌 최종 수정일 : 2002년 03월 06일

   작성자 : acggongi(임 태영)
   편집자 : Taeyo(김 태영)

   강좌 제목 : Image, RadioButton, Text

강좌 전 태오의 잡담>

.... 이제 봄이 왔습니다. 마음속에도 봄이 찾아오기를 기대하면셔... 올해도 홧팅입니다.


강좌 시작 >

이번 강좌는 HtmlInput Controld의 두번 째 강좌로 HtmlInput 컨트롤의 나머지 부분들을 다루어 보겠습니다.. 태오님이 부지럼을 떨어 주시는 바람에 저도 바쁘게 강좌를 올리게 됐군요.. 바로 들어가기로 하겠습니다..(참고로 강좌 중 예제로 쓰이는 부분들이 제대로 되지 않거나 개인적으로 닷넷에 대한 궁금증이 있으면 저에게 메일로 보내시지 마시고, 태오 사이트의 Q&A 게시판에 올려 주시기 바랍니다..)


HtmlInputImage Control

<input
type=image
runat="server"
id="programmaticID"
src="imagepath"
align="imagealignment"
alt="alttext"
OnServerClick="onserverclickhandler"
width="borderwidthinpixels" >

속성 보기
align
alt
causesValidation

이벤트
ServerClick


이미지정렬 방식
대체 문자열
유형성 검사의 수행 여부

클릭 이벤트 발생

예제를 해봐야 겠죠? 세가지 InputImage Control을 만들었습니다. 처음에는 어떠한 속성도 주지 않고, src속성으로 이미지를 불러왔으며, 두번째 예제는 롤오버 효과를 주었습니다. 마지막 예제는 alt 속성을 주어서 대체 문자열을 보여 드릴 겁니다.
먼저 소스를 보시면...


결과입니다..



HtmlInputRadioButton Control

<input
type=radio
runat="server"
id="programmaticID"

checked
name="radiobuttongroup"
>

기존의 Html 태그의 "input type = radio"를 서버 사이드 컨트롤로 제공하는 컨트롤이 지금 살펴 볼 HtmlInputRadioButton 입니다. 많이 사용해 보신 컨트롤 중의 하나이므로 특별한 설명 보다는 IDE에서의 예제로 바로 넘어 가겠습니다.

예제는 음식 값을 계산하는 예제로 라면을 먹는데 종류를 고르고, 반찬을 골라서 합계 버튼을 누르면 그에 대한 합계가 나오는 걸 만들어 보았습니다..


결과는 여러분들이 직접 확인을 해보세요.. 알고 계신 내용이지만 노파심에 한마디 더 하자면 HtmlInputRadioButton Control중 name property는 그룹으로 구현하고자 할 때 같은 이름을 적어주시면 됩니다. 위의 소스에서 만약 라면 종류와 반찬 종류를 하나의 그룹으로 묶기 위해 동일한 이름으로 name 속성을 주었다면, 항목 4가지 중 하나만을 선택 할 수 있게 됩니다.


이번 강좌는 부담없는 컨트롤에 내용도 짧군요. 그런데 솔직히 부담없는 컨트롤이라고는 할 수 없답니다.. 요놈들이 지금처럼 따로 분리 되지 않고 큰 프로젝트 안에서 돌아가는 일 부분이라면 그 쓰임새가 무궁무진하니까요..

HtmlInputText Control

<input
type=text | password
runat="server"
id="programmaticID"
maxlength="max#ofcharacters"
size="widthoftextbox"
value="defaulttextboxcontents" >

아시죠!! 사용자로 부터 문자를 입력 받을 때 사용하는 컨트롤 입니다. 보통 줄도 있고 긴 문자를 입력 받을 때는 HtmlTextArea (다다음 강좌 때 나옵니다) 컨트롤을 쓰지만 요 컨트롤은 비교적 짧은 문자열 입력시 사용됩니다.

이번 예제는 사용자(악꽁이)와 비밀번호(1111)를 미리 할당 한 상태에서 사용자로부터 HtmlInputText Control의 text 메소드와 password 메소드를 사용하여 각각을 입력 받게 한 후 버튼의 클릭 이벤트가 발생하면 그에 대한 결과를 확인하는 간단한 프로그램입니다.



머리속에 그림을 그려 보세요....

이번 강좌가 너무 짧다보니 이 상태로 올리기도 쑥스럽로 말을 더 만들어 내자니 머리의 한계가 따르고 해서 VB.NET에서 새롭게 선보인 VB가 OOP언어(객체지향언어)로써의 기능을 가능케 해준 상속(Inheritance)에 대해 알아 보는 시간을 가져 보겠습니다. 개념을 이해하는 정도의 설명을 우선시 하겠습니다. 기존 VB 사용자와 ASP 사용자 그리고 처음 VB.NET 과 ASP.NET을 사용하시는 분들은 머릿 속으로 상속에 대한 밑그림을 그려 보세요.

1. Inheritance란 무엇인가?

프로젝트를 만들다 보면 반복적으로 계속 사용하게 되는 폼이 있기 마련입니다. 그때 마다 개발자는 똑같은 폼을 타자 연습하듯 반복 적으로 코딩을 했었습니다.(악꽁이만 그랬나..) 이런 반복적이거나 프로그램의 뿌리가 되는 어떠한 이벤트를 모아서 한 곳에 정의를 해 놓고, 필요할 때마다 그 정의된 클래스를 불러와 약간씩 변형하기도 하고 완전히 바꿔버리기도 할 수 있는 것이 바로 상속에 대한 개념입니다. 즉 Base Class(이하 부모 클래스)로 부터 새로운 Class(이하 자식클래스)를 만들기 위해서 사용하는 것이지요..(밑그림을 그리셨나요?)

자식클래스는 부모클래스의 속성, 메소드, 이벤트등을 그대로 또는 확장 할 수가 있으며, 물론 현재의 프로젝트에서 정의한 부모 클래스는 다른 클래스 또는 프로젝트에서도 참조하여 쓸 수가 있습니다.(우와 편리하겠다..) Inheritance에는 두가지 종류가 있답니다. 하나는 Single Inheritance와 다른 하나는 당근 Multi Inheritance겠죠! 그런데 VB.NET에선 하나의 베이스클래스(부모클래스)만을 지원하는 Single Inheritance만을 지원하므로 두개 이상의 부모를 가질 수 없다는 의미입니다.

2. 그럼 상속을 언제 하나요?

상속을 언제 사용하게 되는지도 그림을 그려봐야겠죠? 먼저 하위레벨 API를 클래스화 할 때 사용합니다. 이는 하위레벨 API를 단순화 시키는데 도움을 줍니다. 그런데 클래스의 계층 구조가 깊을 때 즉 아주아주 복잡한 프로젝트를 멩글땐 사용을 자제하시는 게 좋습니다. 왜냐 더 복잡해징게..또한 상속은 베이스 클래스를 통해 자식 클래스를 변경 하고자 할 때에도 사용 한답니다. 그런데 실제 가장 중요하면서도 가장 핵심적인 건 부모 클래스 코드를 마치 하나의 Component 처럼 재사용 하고자 할 때 사용하게 되는게 바로 상속입니다.

3. 상속도 변경자가 있습니다.

Modifier이란 놈이데 여기에는 세가지가 있습니다. 하나는 Inherits이고 또하나는 NotInheritable 입니다. 나머지 한 놈은 MustInherit 라고 하는데, Inherit는 클래스에만 사용하는 Modifier 이며, NotInheritable 은 말그대로 상속 할 수 없다, 즉 여기서 정의 하는 부분은 부모 클래스가 아니다라는 의미 입니다. 또한 반드시 상속해라고 하는 MustInherit 가 있습니다.

4. 메소드 오버라이딩

부모 클래스가 있습니다. 이 부모 클래스를 변경 또는 확장 할 수 없다면 누가 상속이란 말을 멩그렀겠습니까? 오버라이딩이란 개념은 참고 서적을 보면 아주 복잡하고 자세하게 설명 되있던데 악꽁이가 이해한 오버라이딩에 대한 개념은 이렇습니다.

부모 클래스로 부터 상속 받은 자식 클래스가 그 속성이나 메소드 등을 새롭게 정의 하고 구현하는 것 = Method Overriding

메소드 오버라이딩 또한 Modifier 가 있습니다. 이는 네가지가 있는데 철자까지 완벽하게 외우셔야 할 부분입니다. 왜냐하면 인텔리전스 기능을 사용할 수 없걸랑요. 메소드 오버라이딩에 대한 변경자는 네가지 있다고 말 했습니다. Overridable, NotOverridable, MustOverride 그리고 Overrides 가 있는데 처음 세가지는 베이스클래스에서 메소드를 정의 할 때 사용하는 변경자로 부모클래스에서 사용되며, Overrides는 자식클래스에서 오버라이드할 때 사용합니다.


머리속에 그림 그리시느라 수고 하셨습니다. 이번 강좌로 HtmlInput Control은 마무리 하고, 다음 강좌도 역시 Html Server Control을 이어서 보기로 하겠습니다. 감사합니다..

Back