obj[i].style.color = "#ff0000";
obj[i].innerHTML = "홍길동<br>이순신";
obj[i].style.backgroundColor = "#00ff00";
obj[i].style.border = "1px solid #ff0000"; // '1px solid DarkGreen'; dotted 2px #FF6600
obj[i].style.fontWeight = "bolder"; //bold,normal
obj[i].style.display = "block";
obj[i].style.fontStyle = "italic"; //italic,normal
obj[i].style.height = 40;
obj[i].style.width = 200;
obj[i].style.align = "center";
obj[i].style.top = 200;
obj[i].style.left = 200;
obj[i].style.zIndex = 0;
obj[i].focus();
obj[i].blur();
obj[i].style.letterSpacing = 20;
obj[i].style.letterPadding = "center";
obj[i].style.filter = "alpha(opacity=50)";
obj[i].style.cssText = "border:1px solid #ff0000;width:500px;text-align:center;padding-top:100px";
obj[i].style.overflow = "hidden";
obj[i].style.position = "relative";
obj[i].style.cursor = "pointer";
obj[i].style.padding = 10;
obj[i].style.paddingLeft = 30;
obj[i].style.paddingTop = 30;
obj[i].style.marginLeft = 50;
obj[i].style.marginTop = 50;
obj[i].style.fontFamily = 'Lucida Console'; //"궁서";
obj[i].style.backgroundImage = 'none';
obj[i].style.borderTopWidth = 5;
obj[i].style.fontSize = 15;
obj[i].innerText = "OK";
//alert( typeof(obj[i].innerText)); // string
//obj[i].style.offsetLeft = 500;
//obj[i].style.offsetTop = 500;
//obj[i].posX = 500;
//obj[i].posY = 500;
//obj[i].text_ = "ttttttttttttt";

'study' 카테고리의 다른 글

MS SQL 함수 모음  (0) 2014.02.19
메타테그 설정  (0) 2014.01.28
Row_Number() 사용법  (0) 2013.12.28
자스 문자열체크 및 대소문자구분  (0) 2013.10.27
HTML5 크로스 브라우징 시 오브젝트를 이용한 동영상 재생  (0) 2013.09.03

insert into mplus_board_category select 'qnas',

ROW_NUMBER() OVER(ORDER BY idx DESC) AS Row,

tec_id,0,ROW_NUMBER() OVER(ORDER BY idx DESC) AS Row,'','' from teacher

 

String.length

스트링의 길이를 알려준다.

 

예 1>

01 var x = "Netscape";
02 var empty = "";
03 
04 console.log("Netspace is " + x.length + " code units long"); // 8
05 console.log("The empty string is has a length of " + empty.length); /* should be 0 */

 

String.toLowerCase, String.toUpperCase

불러들인 스트링 값을 소문자(대문자)로 변환 한다.

 

예 2>

01 var sampleText="AlPhaBet";
02 document.write(sampleText.toLowerCase() 
03         + " " + sampleText.toUpperCase());
04         // alphabet ALPHABET

 

'study' 카테고리의 다른 글

JavaScript CSS 찾아 헤메이던.. 그녀석  (0) 2014.01.14
Row_Number() 사용법  (0) 2013.12.28
HTML5 크로스 브라우징 시 오브젝트를 이용한 동영상 재생  (0) 2013.09.03
HTTP REFER  (0) 2013.08.14
request.servervariables  (0) 2013.07.16

<object type="application/x-shockwave-flash" data="미디어 파일 주소" width="500" height="408">
<param name="movie" value="미디어 파일 주소" />
</object>


아놔.. 재생

         <!--[if IE]>
         <object width="176" height="155" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" standby="Loading Microsoft Windows Media Player components..." type="video/x-ms-wmv">
          <param name="filename" value="/html/020201080000/central.wmv" />
          <param name="Url" value="/html/020201080000/central.wmv" />
          <param name="animationatstart" value="1" />
          <param name="autostart" value="0" />
          <param name="balance" value="0" />
          <param name="currentmarker" value="0" />
          <param name="currentPosition" value="0" />
          <param name="displaymode" value="4" />
          <param name="enablecontextmenu" value="0" />
          <param name="enabled" value="1" />
          <param name="fullscreen" value="0" />
          <param name="invokeurls" value="1" />
          <param name="PlayCount" value="1" />
          <param name="rate" value="1" />
          <param name="showcontrols" value="1" />
          <param name="showstatusbar" value="1" />
          <param name="stretchtofit" value="1" />
          <param name="transparentatstart" value="1" />
          <param name="captioningID" value="captions" />
          <param name="displaybackcolor" value="0" />
         </object>
         <![endif]-->
         <!--[if !IE]>
         <object type="video/x-ms-asf-plugin" data="/html/020201080000/central.wmv" width="176" height="155"></object>
         <![endif]-->

'study' 카테고리의 다른 글

Row_Number() 사용법  (0) 2013.12.28
자스 문자열체크 및 대소문자구분  (0) 2013.10.27
HTTP REFER  (0) 2013.08.14
request.servervariables  (0) 2013.07.16
input type  (0) 2013.01.01

ASP의 서버변수는 꽤나 다양하다.


## HTTP전체 문자열
- all_http
        <%= request.ServerVariables("all_http") %>

- all_raw
- appl_md_path
- auth_password
- auth_type
- auth_user
- cert_cookie
- cert_flags
- cert_issuer
- cert_keysize
- cert_secretkeysize
- cert_serialnumber
- cert_server_issuer
- cert_subject
- content_length
- content_type
- gateway_interface
- https
- http_accept
- http_accept_encoding
- http_accept_language
- http_cookie
- http_connection
- https_keysize
- https_secretkeysize
- https_server_issuer
- https_server_subject

## 홈페이지 주소중 ***.com 등을 제외한 경로
- http_url
        <%=request.servervariables("http_url") %>

## 현재 도메인
- http_host
        <%=Request.ServerVariables("http_host") %>

## 이전 페이지
- http_referer
        <%=Request.ServerVariables("http_referer") %>

- http_user_agent
- instance_id
- instance_meta_path

##서버 아이디
- local_addr
        <%=Request.ServerVariables("local_addr") %>

## 사용자 LogOn 계정이름
- logon_user
        <%=Request.ServerVariables("logon_user") %>

- path_info
- path_translated
- query_string

## 클라이언트 ip 주소 알아내기
- remote_addr
        <%=Request.ServerVariables("remote_addr") %>

- remote_host
- remote_user
- request_method
- script_name

## server_name
- server_name
        <%=request.ServerVariables("server_name")%>

- server_post
- server_port_secure
- server_protocol
- server_software

## 현재 페이지 이름
- url
        <%=Request.ServerVariables("url") %>


============================


## 전체 서버변수를 뿌리는 예제
<html>
< body>
    <table >
    <% For Each key in Request.ServerVariables %>
        <tr>
            <td><%=key %></td>
            <td>
            <%
                if Request.ServerVariables(key) = "" Then
                    Response.Write " "
                else
                    Response.Write Request.ServerVariables(key)
                end if
            %>
            </td>
        </tr>
    <% next %>
    </table>
< /body>
< /html>


## 언어선택후 자동로딩 예제
<%
        User_Lang = request.ServerVariables("http_accept_language")
        
        response.write User_Lang+"<br>"

        if inStr(User_Lang, "ko") > 0 then
                'response.redirect "korea.asp"
                response.write "한글어 페이지를 로딩"
        else
                'response.redirect "english.asp"
                response.write "영문 페이지를 로딩"
        end if
%>

'study' 카테고리의 다른 글

자스 문자열체크 및 대소문자구분  (0) 2013.10.27
HTML5 크로스 브라우징 시 오브젝트를 이용한 동영상 재생  (0) 2013.09.03
request.servervariables  (0) 2013.07.16
input type  (0) 2013.01.01
qqq  (0) 2012.12.31

##클라이언트 ip 알아내기
ip=Request.ServerVariables("REMOTE_ADDR")


##이전 페이지
ip2=Request.ServerVariables("HTTP_REFERER")

##현재 도메인
ip3=Request.ServerVariables("HTTP_HOST")

##현재 페이지 이름
ip4=Request.ServerVariables("url")

##서버 아이디
ip5=Request.ServerVariables("LOCAL_ADDR")
 
<%
dim key
for each key in request.serverVariables
response.write "<tr><td>" & key & "</td><td>"

if request.servervariables(key) = "" then
response.write " "
else
response.write request.servervariables(key)
end if
response.write "</td></tr>"
next
%>
[출처] ip=Request.ServerVariables("REMOTE_ADDR")|작성자 비노쉬

'study' 카테고리의 다른 글

HTML5 크로스 브라우징 시 오브젝트를 이용한 동영상 재생  (0) 2013.09.03
HTTP REFER  (0) 2013.08.14
input type  (0) 2013.01.01
qqq  (0) 2012.12.31
zzzzzz  (0) 2012.10.01
1. <input type="text" name="" size="40" value="기본형식">
2. <input type="text" name="" size="40" value="Readonly (입력불가)" readonly>
3. <input type="text" name="" size="40" value="Disabled (작동불가)" disabled>
4. <input type="text" name="" size="40" value="입력폰트 설정" style="font-size:12pt; color:#ff0000; font-weight:bold;">
5. <input type="text" name="" size="40" value="테두리 0px 로 설정" style="border: 0px;">
6. <input type="text" name="" size="40" value="테두리 1px 로 설정" style="border: 1px solid #ff0000;">
7. <input type="text" name="" size="40" value="테두리 4개 각각 설정" style="border-right: #ff0000 1px solid; border-left: #00ff00 1px solid; border-top: #ffff00 1px solid; border-bottom: #0000ff 1px solid;">
8. <input type="text" name="" size="40" value="배경색 회색으로 설정" style="background-color: #e2e2e2;">
9. <input type="text" name="" size="40" value="입력값 오른쪽 정렬" style="text-align: right;">
10. <input type="text" name="" size="40" value="크기 강제 조정" style="height:30px; width:200px">
11. <input type="text" name="" size="40" value="패딩주기(상:5,우:0,하:0,좌:10)" style="padding:5px 0px 0px 10px;">

 

<html>

<head>

<title>input에 CSS로 Style(스타일)을 주자!</title>

<style>

img,input{ vertical-align:middle; }

#counsel p{ margin-bottom:10px; }

#input_text{

width:290px; height:51px;

background:url('input_bg.jpg') no-repeat;

border:none;

padding:15px;

font-size:16px;

color:#aaa;

}

</style>

</head>

<body>

<h1>input type="text" CSS로 스타일(style) 주기(2)</h1>

<div class="counsel">

<p><label for="useId">이름</label><input type="text" id="useId" class="input_text" /></p>

<p><label for="useCompany">업체명</label><input type="text" id="useCompany" class="input_text" /></p>

<p><label for="useEmail">이메일</lable><input type="text" id="useEmail" class="input_text" /></p>

<p><label for="usePhone">연락처</label><input type="text" id="usePhone" class="input_text" /></p>

</div>

</body>

<html>

 

'study' 카테고리의 다른 글

HTTP REFER  (0) 2013.08.14
request.servervariables  (0) 2013.07.16
qqq  (0) 2012.12.31
zzzzzz  (0) 2012.10.01
자동 가입 방지 폼 구현하기  (0) 2010.12.30


0 Feb 22 2006 4:26PM CONVERT(CHAR(19), CURRENT_TIMESTAMP, 0)
1 02/22/06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 1)
2 06.02.22 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 2)
3 22/02/06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 3)
4 22.02.06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 4)
5 22-02-06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 5)
6 22 Feb 06 CONVERT(CHAR(9), CURRENT_TIMESTAMP, 6)
7 Feb 22, 06 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 7)
8 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 8)
9 Feb 22 2006 4:26:08:020PM CONVERT(CHAR(26), CURRENT_TIMESTAMP, 9)
10 02-22-06 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 10)
11 06/02/22 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 11)
12 060222 CONVERT(CHAR(6), CURRENT_TIMESTAMP, 12)
13 22 Feb 2006 16:26:08:020 CONVERT(CHAR(24), CURRENT_TIMESTAMP, 13)
14 16:26:08:037 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 14)
20 2006-02-22 16:26:08 CONVERT(CHAR(19), CURRENT_TIMESTAMP, 20)
21 2006-02-22 16:26:08.037 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 21)
22 02/22/06 4:26:08 PM CONVERT(CHAR(20), CURRENT_TIMESTAMP, 22)
23 2006-02-22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 23)
24 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 24)
25 2006-02-22 16:26:08.037 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 25)
100 Feb 22 2006 4:26PM CONVERT(CHAR(19), CURRENT_TIMESTAMP, 100)
101 02/22/2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 101)
102 2006.02.22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102)
103 22/02/2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 103)
104 22.02.2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 104)
105 22-02-2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 105)
106 22 Feb 2006 CONVERT(CHAR(11), CURRENT_TIMESTAMP, 106)
107 Feb 22, 2006 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 107)
108 16:26:08 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 108)
109 Feb 22 2006 4:26:08:067PM CONVERT(CHAR(26), CURRENT_TIMESTAMP, 109)
110 02-22-2006 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 110)
111 2006/02/22 CONVERT(CHAR(10), CURRENT_TIMESTAMP, 111)
112 20060222 CONVERT(CHAR(8), CURRENT_TIMESTAMP, 112)
113 22 Feb 2006 16:26:08:067 CONVERT(CHAR(24), CURRENT_TIMESTAMP, 113)
114 16:26:08:067 CONVERT(CHAR(12), CURRENT_TIMESTAMP, 114)
120 2006-02-22 16:26:08 CONVERT(CHAR(19), CURRENT_TIMESTAMP, 120)
121 2006-02-22 16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 121)
126 2006-02-22T16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 126)
127 2006-02-22T16:26:08.080 CONVERT(CHAR(23), CURRENT_TIMESTAMP, 127)
130 24 ???? 1427 4:26:08:080PM CONVERT(CHAR(32), CURRENT_TIMESTAMP, 130)
131 24/01/1427 4:26:08:080PM CONVERT(CHAR(25), CURRENT_TIMESTAMP, 131)

'study' 카테고리의 다른 글

request.servervariables  (0) 2013.07.16
input type  (0) 2013.01.01
zzzzzz  (0) 2012.10.01
자동 가입 방지 폼 구현하기  (0) 2010.12.30
ASP.NET Summary Ver.2 Chapter 4 (웹 서버 컨트롤 사용하기) 훈스닷넷 펌  (0) 2010.12.27

http://mail.konyang.ac.kr/nara/servlet/hbbs.HBoardServ?id=nizimo@konyang.ac.kr&name=aaa

'study' 카테고리의 다른 글

input type  (0) 2013.01.01
qqq  (0) 2012.12.31
자동 가입 방지 폼 구현하기  (0) 2010.12.30
ASP.NET Summary Ver.2 Chapter 4 (웹 서버 컨트롤 사용하기) 훈스닷넷 펌  (0) 2010.12.27
ASP.NET With C Shap [hoons.kr] chapter 3  (0) 2010.12.27
  강좌 최초 작성일 : 2004년 3월 17일
  강좌 최종 수정일 : 2004년 3월 17일 

  작성자 : HOONS(박경훈)
http://www.hoonsbara.com

  강좌 제목 : 자동 가입 방지 폼 구현하기 
 



1.이 강좌는??

카페를 운영 해본 사람이라면 보면 상업 글이나 음란광고 글들이 쉬지도 않고 올라오고 운영자들은 그런글을 찾아서 지워야 하는 경험을 가져 봤을것이다. "저런 놈들 저렇게 돌아 다니면서 광고하면 지치지도 않나?-_-+" 하지만 광고를 하는 그들은 절대 지치지 않았다, 왜냐하면 다움 카페의 자동 광고 프로그램이 유통되었기 때문이다. 일명 메크로 프로그램!(-_-+) 그 프로그램은 자동으로 여러 카페들을 가입하여 준다. 그리고 한술 더 떠서 글을 쓸수 있는 권한이 있는곳의 게시판에 자동으로 글을쓰고 탈퇴를 하는 프로그램인 것이다. "이런 프로그램이 정말 가능한가?" 이건 프로그래머가 품으면 안되는 맘가짐중에 하나이다-_-; 여튼 이런 프로그램을 막기 위해서 개발자들은 생각을 했다. 컴퓨터가 알수 없이 꼭 사람이 가입을 해야만 할수 있는 인증 절차가 없을까? 그래서 생각해 낸 것이 이미지 글씨라는 것이다. 아래 글씨를 한번 보자.

 

이것은 분명 gif파일인 것이다. 컴퓨터가 알아보기 아주아주 까다롭다. -_-;
그래서 어느 순간서부터 다움 카페에 가입을 하기전에 저런 이미지를 넣는것을 본적이 있을 것이다. 이런 아이디어가 퍼져서 요즘은 어느정도 규모가 있는 홈페이지에서는 기본적으로 가입할때 위와 같은 절차를 걸치게 된다. 이러한 이 효과로 어둠속에 숨어서 광고를 하는 그들에게는 조금 불편해 지는 번거로움을 줄수 있었다, 하지만 지금은 사람이 마구 가입을 하고, 프로그램을 이용하여 글을 올리고 있으므로 근본적인 해결책이 된것은 아니다.

어쨌든 카페를 구현하게 된다면 이런 인증 폼을 구현하게 될것인데, 우리 닷넷은 바로 GDI+ 이라는 객체를 지원하므로 GDI+을 이용하여 인증 폼을 아주 쉽게 구현할수 있을 것이다. 그러면 한번 위와 같은 인증 폼을 구현해 보도록 하겠다.



2. 구현 로직

구현 로직은 정말 간단하다.

[            ( 서버 )          ]   [                 (클라이언트)              ]      [ (서버) ]
페이지로딩--->그림저장-->저장한 그림 보여주기--> 입력값 받기 --> 확인하기


2-1. 폼 기본디자인

그럼 먼저 ASP.NET프로젝트 창을 열고 텍스트 박스1개, 버튼1개,라벨1개를 추가 시켜주자 그리고 윗부분에는 <img src=이미지주소> 라는 이미지태그를 넣어주자.< BR>

 
2-2. 랜덤 이미지 생성하기

private void Page_Load(object sender, System.EventArgs e)
{
 if(!IsPostBack)//맨처음 실행된다면..
 {
  //임의의 글자를 난수로 발생시켜 PrintStr에 집어넣기
  string[] RandomStr = new string []{"자동","가입","프로","그램","쓰지","말자"};
  Random r=new Random();
  string PrintStr=RandomStr[r.Next(6)];

  //랜덤으로 그리는 글씨를 ViewState에 저장한다.(나중에 검사할때 사용)
  ViewState["Str"]=PrintStr;
   
  //비트맵객체를 생성하고 이 객체를 Graphics객체에서 생성한다.
  Bitmap btm=new Bitmap(100,80);
  Graphics grp=Graphics.FromImage(btm);

  //회색바탕의 사각형을 만들기
  SolidBrush backBrush=new SolidBrush(Color.DarkGray);
  Rectangle rect=new Rectangle(0,0,100,80);//100,80의 사이즈
  grp.FillRectangle(backBrush,rect);//뒷 배경과 사각형 객체를 전달한다.

  //빨간색 글씨를 써서 집어넣는다.
  Font font=new Font("굴림",20);
  SolidBrush strinBrush=new SolidBrush(Color.Red);
  grp.DrawString(PrintStr,font,strinBrush,20,20);

  //이제 만들어진 객체를 저장 시키자.
  string pathStr=MapPath(Request.ApplicationPath)+@"\img\RanStr.gif";
  btm.Save(pathStr,ImageFormat.Gif);
 }
}


using System.Drawing.Imaging; 과같은 네임스페이스를 추가 시켜주자. 페이지가 첫번째 로드가 되게 된다면 그림이 img라는 경로에 저장이 되어진다.그리고 <img src=img/RanStr.gif>라는 이미지 태그를 넣게 되면 아래와 같이 임의로 정한 글자가 이미지로 나오는 것을 볼수 있을것이다.
 

2-3. 랜덤 이미지 비교하기

private void btnCheck_Click(object sender, System.EventArgs e)
  {
   if(txtPwdWord.Text==ViewState["Str"].ToString())
    Label1.Text="잘썼군요";  
   else
    Label1.Text="잘못썼군요_-_;";
  }



그럼 이제 위의 글을 버튼확인을 이용해서 검사를 하면 되는것이다. 아까전에 ViewState["Str"]=PrintStr; 이러한 코딩이 있었다. 이 코딩은 ViewState안에다가 임의로 값을 저장하는 부분이다. ViewState의 역활은 나중에 버튼을 눌러서 포스트백이 일어나게 될경우 기존에 생성시킨 그림이 어떤것인지 알기 위해서 저장해 놓는 일종의 상태 저장소 라고도 할수 있다.여기서 반드시 ViewState를 이용해야만 되는건 아니지만 ViewState라는 개념을 설명하기 위해서 선택해 보았다.

이미지 생성(랜덤문자 ViewState저장) --> 클라이언트브라우저(ViewState 유지) --> 버튼 클릭 이벤트(ViewState값과 비교하기)

이 ViewState부분은 웹브라우저에서 소스보기를 했을때 Base64로 인코딩된 이상한 문자들을 볼수 있을것이다. 이 부분이 바로 ViewState값이 저장되는 부분이라 할수 있다. 생각하면 알수 있겠지만 보안상 안정적인 부분이라고 볼수는 없다. Base64에서 디코딩하면 금방 알아 낼수 있으므로, 비밀번호라던가 이런 보안 수준이 높은 데이터는 절대 ViewState에 저장하지 않도록 하자. 

결과


 강좌 최초 작성일 : 2004년 04월 01일
  강좌 최종 수정일 : 2004년 08월 17일 

  작성자 : YouKnow(문윤호) 
youknow@fuz.co.kr
  편집자 : HOONS(박경훈) http://www.hoonsbara.com

  강좌 제목 : ASP.NET Summary Ver.2 Chapter 4 (웹 서버 컨트롤 사용하기)
 


 -. 웹 서버 컨트롤은 클라이언트의 타입을 자동으로 감지해서 적절한 결과물로 렌더링하는 기능을 제공한다. 이러한 클라이언트별로 렌더링되는 기능이 웹 서버 컨틀롤이 HTML 서버 컨트롤과 비교되는 가장 큰 특징이라고 할 수 있다. 이번 Chapter에선 웹 서버 컨트롤 중 기본 컨트롤에 대해 알아 보겠다. (Intrinsic Controls)

   1. Label 컨트롤

   웹 폼 페이지에서 동적인 텍스트를 출력하고자 할 때 사용된다. 런타임시에 페이지 내의 텍스트의 내용을 변화 시킬 수 있다. 따라서 페이지에서 정적인 텍스트는 Label 컨트롤을 사용하지 않고 일반 텍스트로 처리하는 것이 좋다. 또한 Repeater나 DataList, DataGrid 컨트롤과 같은 리스트 컨트롤에서 데이터베이스로 부터 가져온 정보를 출력하고자 할 때 템플릿에 Label 컨트롤을 추가하여 사용할 수도 있다. Label 컨트롤은 Html의 <span> 태그로 렌더링 된다.

   2. TextBox 컨트롤

   웹 폼에서 사용자로 부터 텍스트나 숫자, 날짜 같은 정보를 입력 받을때 사용하는 컨트롤이다.

   TextBox 컨트롤의 주요 프로퍼티

-. Columns       : 컨트롤의 길이

   -. MaxLength     : 입력할 수 있는 최대 문자열 길이

   -. Row           : 행 수. TextMode가 MultiLine일 때만 유효하다.

   -. Text          : 박스 내의 텍스트

   -. TextMode      : Textbox 컨트롤의 형식을 지정한다. Single, MultiLine, Password 값을 설정할 수 있다.

 -. AutoPostBack  : True일때 텍스트 값에 변화가 발생하면 서버로 페이지를 전송한다. 기본 값은 False

   TextBox 컨트롤의 값이 변경되면 OnTextChanged 이벤트가 발생한다. OnTextChanged(Object sender, EventArgs e)

   TextBox 컨트롤은 라운드 트립시에 기존의 텍스트 값에 변화가 있으면 TextChanged 이벤트를 발생시킨다. 이 이벤트는 즉시 일어나는 것이 아니라 웹 폼이 서버로 POST 되었을 때 발생한다. 그러나 'AutoPostBack' 프로퍼티를 'True'로 설정하면 사용작의 포커스가 TextBox 컨트롤을 벗어났을 때 즉시 서버로 전송되게 설정할 수도 있다. 이때 주의 할 것은 사용자가 키 입력을 할 때 발생하는 것이 아니라 컨트롤에서 포커스가 벗어 났을때 발생하는 것이다.

    3. Image 컨트롤

    웹 폼 페이시 상에 이미지를 보여주고 코드 상에서 이미지를 관리할 때 사용할 수 있는 컨트롤로 Image 컨트롤을 사용하여 페이지 디자인할 때 뿐만 아니라, 런타입 시에도 출력할 이미지 파일을 적절하게 설정할 수 있다. 또한 ImageUrl 프로퍼티를 데이터베이스와 바인딩 시켜서 사용할 수도 있다. Image 컨트롤은 어떠한 이벤트도 발생시키지 않는다. 즉, 마우스 클릭같은 이벤트에 대해서 Image 컨트롤이 반응을 하기 위해선 ImageButton 컨트롤을 사용해야 한다.

    Image 컨트롤의 주요 프로퍼티

    -. AlternateText : 이미지를 보여줄 수 없을 때 대신하는 텍스트, 이미지를 툴팁으로 제공하는 웹 브라우저도 있다.

    -. ImageAlign : 주변의 텍스트와 이미지를의 정렬 방법        

    -. ImageUrl : 출력할 이미지의 경로

    속성창에서 ImageUrl의 확장버튼을 클릭하여 이미지 선택창을 띄어 사용할 이미지의 경로를 선택하고 OK 버튼을 클릭하여 이미지를 설정할 수 있다. 이미지의 Url 타입은 Chapter3의 이미지 출력에서 설명한 바 있다.

    

<form id="Form1" method="post" runat="server">
        <FONT face="굴림">
            <P>
                <asp:Label id="Label1" runat="server">이건 Lable 컨트롤</asp:Label>
                <asp:Button id="Button1" runat="server" Text="Button"></asp:Button></P>
            <P>사용자ID :
                <asp:TextBox id="UserID" runat="server" tabIndex="1" MaxLength="10"></asp:TextBox></P>
            <P>비밀번호 :
                <asp:TextBox id="Password" runat="server" tabIndex="3" TextMode="Password" MaxLength="10"></asp:TextBox></P>
            <P>나의 소개 :
                <asp:TextBox id="Introduction" runat="server" tabIndex="2" TextMode="MultiLine" Rows="4"></asp:TextBox></P>
            <P>
                <asp:Button id="Button2" runat="server" Text="Button"></asp:Button></P>
            <P>
                <asp:Image id="Image1" runat="server" ImageUrl="../image/logo_xpert.gif" ImageAlign="Top" AlternateText=".netXpert 로고" Height="40px" Width="170px"></asp:Image>&nbsp;align : top
                <br><br>
                <asp:Image id="Image2" runat="server" ImageUrl="../image/logo_xpert.gif" ImageAlign="Middle" BorderWidth="1px"></asp:Image>&nbsp;align : middle
                <br><br>
                <asp:Image id="Image3" runat="server" ImageUrl="../image/logo_xpert.gif" ImageAlign="Bottom" Height="50px" Width="210px" BorderWidth="5px" BorderStyle="Double"></asp:Image>&nbsp;align : bottom</P>
        </FONT>
    </form>


(소스) Label.aspx

    웹 폼 페이지내에 Button 컨트롤에 해당 기능을 구현하자. 첫번째 버튼은 Label의 텍스트를 변할 것이고, 두번째 버튼은 TextBox의 입력한 내용을 웹 페이지에 Write 할 것이다.    

private void Button1_Click(object sender, System.EventArgs e)
    {
        Label1.Text = "바뀐 Lable 컨트롤";
    }

    private void Button2_Click(object sender, System.EventArgs e)
    {
        Response.Write(UserID.Text + "<br>");
        Response.Write(Password.Text + "<br>");
        Response.Write(Introduction.Text + "<hr>");
    }

    4. CheckBox 컨트롤

    웹 폼에서 CheckBox를 사용하는 방법에는 개별적으로 CheckBox 컨트롤을 사용해서 관련 항목끼리 그룹핑하는 방법과 CheckBoxList 컨트롤을 이용하는 방법이 있다. CheckBox 컨트롤을 사용해서 개별적으로 웹 폼에 추가흔 것은 각 컨트롤별로 폰트나 색상과 같은 스타일을 지정 할 수 있다. CheckBox 컨트롤은 사용자가 마우스로 클릭할 때 CheckedChanged라는 이벤트를 발생시킨다.

    5. RadioButton 컨트롤

    RadioButton 컨트롤도 CheckBox 컨트롤 처럼 웹 폼에서 개별적으로 추가할 수 있고 그룹핑된 RadioButtonList 컨트롤을 사용할 수 있다. RadioButton 컨트롤은 개별적으로 추가하더라도 동일한 그룹 이름을 지정함으로써 그룹핑할 수 있다. 즉, 하나의 RadioButton 컨트롤을 선택하면 그룹 내의 다른 RadioButton은 선택이 해제 된다는 의미이다. RadioButton 컨트롤은 개벌적인 스타일 지정이 가능하다는 장점이 있다. 반면 RadioButtonList 컨트롤은 버튼 사이에 텍스트를 임의로 추가할 수는 없지만 데이터베이스에서 바인딩해서 자동으로 그룹핑할 수 있다.

    

<form id="Form1" method="post" runat="server">
        <P><FONT face="굴림">당신의 관심분야를 선택하세요.</FONT></P>
        <P>
            <asp:CheckBox id="CheckBox1" runat="server" Text="웹프로그래밍"></asp:CheckBox><br>

            <asp:CheckBox id="CheckBox2" runat="server" Text="데이터베이스"></asp:CheckBox><br>

            <asp:CheckBox id="CheckBox3" runat="server" Text="시스템프로그래밍"></asp:CheckBox><br>

            <asp:CheckBox id="CheckBox4" runat="server" Text="운영체제"></asp:CheckBox>
        </P>
        <P>
            <asp:Button id="Button1" runat="server" Text="체크박스 확인"></asp:Button>
        </P>
        <P><FONT face="굴림">당신의 성별은?<br>
                <asp:RadioButton id="RadioButton1" runat="server" Text="남"></asp:RadioButton>&nbsp;&nbsp;

                <asp:RadioButton id="RadioButton2" runat="server" Text="여"></asp:RadioButton><br>
            </FONT>
        </P>
        <P><FONT face="굴림">당신의 직업은?<br>

                <asp:RadioButton id="RadioButton3" runat="server" Text="학생" GroupName="Job"></asp:RadioButton>&nbsp;&nbsp;

                <asp:RadioButton id="RadioButton4" runat="server" Text="직장인" GroupName="Job"></asp:RadioButton>&nbsp;&nbsp;

                <asp:RadioButton id="RadioButton5" runat="server" Text="기타" GroupName="Job"></asp:RadioButton>
            </FONT>
        </P>
        <P><FONT face="굴림">

                <asp:Button id="Button2" runat="server" Text="라디오버튼 확인"></asp:Button><br>
            </FONT>
        </P>
    </form>


(소스)checkbox.aspx

  버튼을 클릭하여 어느 Item이 선택 되었는지 확인하는 코드를 작성하자. 

private void Button1_Click(object sender, System.EventArgs e)
    {
        string strChecked = "선택된 값 : ";

        if(CheckBox1.Checked == true && CheckBox2.Checked == false && CheckBox3.Checked == false && CheckBox4.Checked ==false)
            strChecked += CheckBox1.Text;
        else if(CheckBox1.Checked == true)
            strChecked += CheckBox1.Text + ",";

        if(CheckBox2.Checked == true && CheckBox3.Checked == false && CheckBox4.Checked ==false)
            strChecked += CheckBox2.Text;

        else if (CheckBox2.Checked == true)
            strChecked += CheckBox2.Text + ",";

        if(CheckBox3.Checked == true && CheckBox4.Checked ==false)
            strChecked += CheckBox3.Text;

        else if(CheckBox3.Checked == true)
            strChecked += CheckBox3.Text + ",";

        if(CheckBox4.Checked == true)
            strChecked += CheckBox4.Text;
        Response.Write(strChecked + "<hr>");
    }

    private void Button2_Click(object sender, System.EventArgs e)
    {
        string strChecked = "선택된 값 : ";
 
       if(RadioButton1.Checked == true) strChecked += RadioButton1.Text + ",";

        if(RadioButton2.Checked == true) strChecked += RadioButton2.Text + ",";

        if(RadioButton3.Checked == true) strChecked += RadioButton3.Text;

        if(RadioButton4.Checked == true) strChecked += RadioButton4.Text;

        if(RadioButton5.Checked == true) strChecked += RadioButton5.Text;

        Response.Write(strChecked + "<hr>");
    }

    6. Button, LinkButton, ImageButton 컨트롤

    Button은 사용자가 폼에서의 작업을 마친 후 특정 명령을 수행하고자 할 때 쓰이는 컨트롤이다. ASP.NET 서버 컨트롤은 세가지 종류의 Button 컨트롤이 있다.

    Button      : Html <submit> 태그로 렌더링된다.

    LinkButton  : 하이퍼링크로 렌더링된다. 그러나 일반 하이퍼링크와는 달리 클릭시 서버로 폼을 전송시키는 클라이언트 스크립트를 포함하고 있다.

    ImageButton : 특정 이미지를 버튼으로 지정한다. 또한 ImageButton은 사용자가 클릭한 위치 값을 지원해서 이미지 맵으로 버튼을 사용할 수 있게 해 준다.

    위 세가지 형태의 버튼을 모두 사용자가 마우스로 클릭했을 때 폼을 서버로 전송하며 전송된 폼은 서버 코드에 의해서 처리된다.

    Button 컨트롤 주요 프로퍼티

    -. CommandArgument : Command 프로퍼티와 함께 사용되는 선택적 인자이다. 클릭 이벤트에 추가 정보를 보낼 수 있다. 예를 들어 'Sort' Command에는 'Ascending'이나 'Descending' 같은 값을 인자로 사용할 수 있을 것이다.

    -. Command : 컨테이너 컨트롤에 포함되어 있을 경우 클릭시에 처리해야 할 커맨드. 이 프로퍼티는 컨테이너 컨트롤의 OnItemCommand 이벤트의 인자로 넘겨진다.

    -. Text : Button 컨트롤의 캡션

    Button Click시 OnClick 이벤트가 발생하며 서버로 페이지가 전송된다. OnClick(Object sender, EventArgs e)

    LinkButton 컨트롤의 주요 프로퍼티 및 이벤트는 Button 컨트롤과 동일하다.

    ImageButton 컨트롤의 주요 프로퍼티와 이벤트는 Button 컨트롤과 비슷하나 Text 프로퍼티가 없는 대신 ImageUrl(출력할 이미지 경로)가 있다.

    ImageButton 컨트롤의 속성창에서 ImageUrl 프로퍼티에 사용할 이미지를 지정할 수 있다.

<form id="Form1" method="post" runat="server">

        <P><FONT face="굴림">button :

            <asp:Button id="Button1" runat="server" Text="Button"></asp:Button></FONT></P>

        <P><FONT face="굴림">LinkButton :

            <asp:LinkButton id="LinkButton1" runat="server">LinkButton</asp:LinkButton></FONT></P>

        <P><FONT face="굴림">ImageButton :

            <asp:ImageButton id="ImageButton1" runat="server" ImageUrl="../image/next.gif" CommandName="ButtonCommand" CommandArgument="ImageButton"></asp:ImageButton></FONT></P>

    </form>

(소스)button.aspx    

    모두 Button Control의 일종이기 때문에 Click 이벤트를 설정할 수 있다. 아래 코드는 클릭시 발생하는 이벤트이 위임자 메소드 이다.

    private void Button1_Click(object sender, System.EventArgs e)
    {
        Response.Write("Button 클릭 <hr>");
    }
    private void LinkButton1_Click(object sender, System.EventArgs e)
    {
        Response.Write("LinkButton 클릭 <hr>");
    }

    private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
    {
        Response.Write("ImageButton 클릭 <hr>");
    }

(소스)button.aspx    

    7. HyperLink 컨트롤

    사용자가 다른 페이지로 이동할 수 있게 웹 페이지에 링크를 생성한다. 가장 큰 장점은 서버 코드 상에서 링크의 속성을 설정할 수 있다. 예를 들어 페이지에서 링크에 사용될 텍스트나 target 값을 변화시킬 수 있고, 데이터베이스와 연동해서 링크될 페이지나 기타 필요한 속성 값을 자동으로 생성할 수도 있다. HyperLink 컨트롤은 텍스트나 이미지 형태로 출력될 수 있으며 다른 컨트롤처럼 사용자가 클릭했을때 이벤트를 발생시키지는 않지만 내비게이션을 쉽게 구성할 수 있게 해준다.

    HyperLink 컨트롤의 주요 프로퍼티

    -. ImageUrl : 하이퍼링크에 사용할 이미지 경로

    -. NavigateUrl : 이동할 페이지나 북마크 경로

    -. Target : 사용자가 클릭했을 때 대상이 되는 HTML 프레임 키워드, 예를 들어 _top, _search, _self, _blank, _parent 등

    -. Text : 하이퍼링크에 사용할 텍스트

    hyperlink.aspx

    <form id="Form1" method="post" runat="server">

        <P><FONT face="굴림">텍스트 링크 :

            <asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="http://www.noenemy.pe.kr" Target="_self" BackColor="#FFFF80" BorderColor="Lime">Noenemy's ASP.NET</asp:HyperLink></FONT></P>

        <P><FONT face="굴림">이미지 링크 :

            <asp:HyperLink id="HyperLink2" runat="server" NavigateUrl="http://www.noenemy.pe.kr" Target="_blank" ImageUrl="../image/top_banner.gif">HyperLink</asp:HyperLink></FONT></P>

    </form>

    8. Table 컨트롤

    웹 폼 페이지에서 서버 코드에 의한 테이블을 생성하는 컨트롤이다. Table 컨트롤의 실제 내용의 출력은 TableRow와 TableCell 컨트롤이 담당한다. Table 컨트롤은 TableRow 컨트롤의 부모 컨트롤 역할을 하며 TableRow 컨트롤은 TableCell 컨트롤의 부모 컨트롤 역할을 한다. 웹 폼 페이지가 내부적으로 컨트롤 트리(Control Tree)라는 컬렉션 구조를 통해 HTML로 렌더링 된다. Table 컨트롤의 구조 또한 이와 동일한 개념이다.

    Table 컨트롤의 주요 프로퍼티

    -. BackImageUrl     : 배경으로 사용할 이미지 경로

    -. CellPadding      : 셀 사이의 간격 (픽셀 단위)

    -. CellSpacing      : 셀과 셀 내부의 컨트롤 사이의 간격

    -. GirdLines        : 테이블에사용할 라인의 여부, 기본 값은 None

    -. HorizontalAlign  : 주변 텍스트와의 정렬 방법

    -. Rows             : Table을 구성하는 TableRow 객체의 컬렉션

    TableRow 컨트를의 주요 프로퍼티

    -. Cells    : Row를 구성하는 TableCell 객체의 컬렉션

    TableCell 컨트롤의 주요 프로퍼티

    -. ColumnSpan       : 수평방향으로 병합할 컬럼의 수

    -. HorizontalAlign  : 셀 내용의 수평 정렬 방법

    -. RowSpan          : 수직방향으로 병할할 컬럼의 수

    -. VerticalAlgin    : 셀 내용의 수직 정렬 방법

    Table 컨트롤의 속성 차에서 Rows 컬렉션을 추가하기 위한 확정 버튼을 클릭하면 'TableRow 컬렉션 편집기'라는 창이 뜬다. '추가' 버튼을 클릭함으로써 TableRow를 손쉽게 추가할 수 있다. TableCell을 추가하기 위해선 Cells 프로퍼티의 확장 버튼을 클릭하여 동일하게 추가 할 수 있다.

<form id="Form1" method="post" runat="server">

        <P><FONT face="굴림">주소록

                <asp:Button id="Button1" runat="server" Text="Button"></asp:Button></FONT></P>

        <P>

            <asp:Table id="Table1" runat="server" GridLines="Both" Width="500px">

                <asp:TableRow>

                    <asp:TableCell VerticalAlign="Middle" BackColor="#FFFFC0" HorizontalAlign="Center" Text="이름"></asp:TableCell>

                    <asp:TableCell VerticalAlign="Bottom" BackColor="#FFFFC0" HorizontalAlign="Center" Text="메일주소"></asp:TableCell>

                    <asp:TableCell VerticalAlign="Middle" BackColor="#FFFFC0" HorizontalAlign="Center" Text="전화번호"></asp:TableCell>

                </asp:TableRow>

                <asp:TableRow>

                    <asp:TableCell Text="안재우"></asp:TableCell>

                    <asp:TableCell Text="lancers@dotnetxpert.com"></asp:TableCell>

                    <asp:TableCell Text="010-123-4567"></asp:TableCell>

                </asp:TableRow>

                <asp:TableRow>

                    <asp:TableCell Text="이동범"></asp:TableCell>

                    <asp:TableCell Text="funnyfox@dotnetxpert.com"></asp:TableCell>

                    <asp:TableCell Text="099-234-1392"></asp:TableCell>

                </asp:TableRow>

                <asp:TableRow>

                    <asp:TableCell Text="김유철"></asp:TableCell>

                    <asp:TableCell Text="nettalk@dotnetxpert.com"></asp:TableCell>

                    <asp:TableCell Text="080-111-222"></asp:TableCell>

                </asp:TableRow>

                <asp:TableRow>

                    <asp:TableCell Text="김현승"></asp:TableCell>

                    <asp:TableCell Text="puzzle@dotnetxpert.com"></asp:TableCell>

                    <asp:TableCell Text="098-765-5432"></asp:TableCell>

                </asp:TableRow>

                <asp:TableRow>

                    <asp:TableCell Text="김순근"></asp:TableCell>

                    <asp:TableCell Text="noenemy@dotnetxpert.com"></asp:TableCell>

                    <asp:TableCell Text="075-234-1234"></asp:TableCell>

                </asp:TableRow>

            </asp:Table></P>

    </form>

(소스) table.aspx

    버튼을 클릭하여 Table 컨트롤에 TableRow 컨트롤 추가하는 코드이다.

    

private void Button1_Click(object sender, System.EventArgs e)

    {

        TableRow Row = new TableRow();

        TableCell Cell1 = new TableCell();

        TableCell Cell2 = new TableCell();

        TableCell Cell3 = new TableCell();

        Cell1.Text = "홍길동";

        Row.Cells.Add(Cell1);

        Cell2.Text = "younho@dotnetxpert.com";

        Row.Cells.Add(Cell2);

        Cell3.Text = "016-358-3652";

        Row.Cells.Add(Cell3);

        Table1.Rows.Add(Row);

    }

    9. Panel 컨트롤

    웹 폼 페이지에 다른 컨트롤이나 텍스트를 포함하기 위한 컨테이너 역할을 하는 컨트롤이다.

    -. 그룹핑 : 여러 컨트롤들을 Panel 컨트롤 내부에 삽입함으로써 하나의 그룹 단위로 관리할 수 있다. 예를 들어 Panel 컨트롤의 Visible 프로퍼티 값의

    설정으로 내부의 모든 컨트롤을 보이게 하거나 숨길 수 있다.

    -. 동적 컨트롤 추가 : 런타임시에 Panel 컨트롤 내부에 컨트롤을 추가할 수 있다.

    -. 디자인 : Panel의 BackColor나 BorderWidth 속성을 이용해서 페이지 내에서 강조를 통한 시선을 집중 시키는 역할을 할 수 있다.

    Panel 컨트롤의 주요 프로퍼티

    -. BackImageUrl     : 배경으로 사용할 이미지의 경로

    -. HorizontalAlign  : 주변 테스트와 Panel 컨트롤의 정렬 방법

   (소스) panel.aspx

<form id="Form1" method="post" runat="server">

        <asp:Panel id="Panel1" runat="server" Height="104px" Width="320px">

            <BR>&nbsp;&nbsp;&nbsp;&nbsp;

            <asp:TextBox id="TextBox1" runat="server"></asp:TextBox><BR>&nbsp;&nbsp;&nbsp;&nbsp;

            <asp:TextBox id="TextBox2" runat="server"></asp:TextBox><BR>&nbsp;&nbsp;&nbsp;&nbsp;

        </asp:Panel>

        <br>

        <asp:Button id="btnShow" runat="server" Text="보이기"></asp:Button>&nbsp;&nbsp;

        <asp:Button id="btnHide" runat="server" Text="숨기기"></asp:Button>&nbsp;&nbsp;

        <asp:Button id="btnAdd" runat="server" Text="컨트롤추가"></asp:Button>

    </form>

    Panel을 숨기거나 보이게 하는 작업을 Visible 프로퍼티를 활용하여 실행할 것이며, Panel 컨트롤내에 TextBox 컨트롤를 추가 한다.

private void btnShow_Click(object sender, System.EventArgs e)

    {

        Panel1.Visible = true;

    }

    private void btnHide_Click(object sender, System.EventArgs e)

    {

        Panel1.Visible = false;

    }

    private void btnAdd_Click(object sender, System.EventArgs e)

    {

        TextBox txtNew = new TextBox();

        txtNew.Text = "추가된 TextBox";

        Panel1.Controls.Add(txtNew);

        Panel1.Visible = true;

    }

 

    10. Literal 컨트롤

    Literal은 정적인 텍스트를 페이지에 출력하기 위한 컨트롤 이다. Lable 컨트롤은 <span> 요소로 렌터링되었으나 Literal 컨트롤은 일반 텍스트로 렌더링 된다.

    literal.aspx

<form id="Form1" method="post" runat="server">

        <FONT face="굴림">Literal 컨트롤 : </FONT>

        <asp:Literal id="Literal2" runat="server" Text="Literal 컨트롤"></asp:Literal>

        <asp:Button id="Button1" runat="server" Text="Button"></asp:Button>

    </form>

        Button 컨트롤을 클릭하여 Literal의 텍스트를 변경한다.

    

private void Button1_Click(object sender, System.EventArgs e)

    {

        Literal2.Text = "정적인 텍스트 입니다";

    }

    11. XML 컨트롤

    이 컨트롤은 XML 문서 또는 XSL 스타일을 지정한 형태로 웹 페이지 상에 출력하는 역할을 수행한다.

    XML 문서를 표시하기 위해서 Document, DocumentContent, DocumentSource주에서 하나의 속성이 반드시 지정되어야 한다. Document는 XML 문서를

    지정하고 DocumentContent는 XML 문자열을 지정하고, DocumentSource에는 XML 문서의 주소를 지정한다.

    그리고 표시할 스타일에 대한 속성으로 Transform과 TransformSource가 있는데 별도의 XSL 파일이 있다면 TransformSource 속성으로 지정하면

    해당 XML문서에 스타일이 적용된 형태로 페이지에 출력된다.

(소스) address.xml

 <?xml version="1.0" encoding="utf-8" ?>

    <addressbook>

        <member>

            <name>안재우</name>

            <email>lancers@dotnetxpert.com</email>

            <phone>010-123-4567</phone>

        </member>

        <member>

            <name>이동범</name>

            <email>funnyfox@dotnetxpert.com</email>

            <phone>099-098-1298</phone>

        </member>

        <member>

            <name>김유철</name>

            <email>nettalk@dotnetxpert.com</email>

            <phone>080-111-2222</phone>

        </member>

        <member>

            <name>김현승</name>

            <email>puzzle@dotnetxpert.com</email>

            <phone>098-134-2642</phone>

        </member>

        <member>

            <name>김순근</name>

            <email>noenemy@dotnetxpert.com</email>

            <phone>075-234-1234</phone>

        </member>

    </addressbook>

 

(소스) address.xsl

<?xml version="1.0" encoding="utf-8" ?>

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

        <xsl:template match="/">

            <html>

                <body>

                    XML 주소록?br/>

                    <table border="1" cellpadding="0" cellspacing="0" width="80%">

                        <tr bgcolor="beige">

                            <td align="center">이름</td>

                            <td align="center">e-mail</td>

                            <Td align="center">전화번호</Td>

                        </tr>

                        <xsl:for-each select="addressbook/member">

                        <tr>

                            <td align="center"><xsl:value-of select="name"/></td>

                            <td align="center"><xsl:value-of select="email"/></td>

                            <td align="center"><xsl:value-of select="phone"/></td>

                        </tr>

                        </xsl:for-each>

                    </table>

                </body>

            </html>

        </xsl:template>

    </xsl:stylesheet>

    xmltest.aspx

    <form id="Form1" method="post" runat="server">

        <asp:Xml id="Xml1" runat="server" DocumentSource="address.xml" TransformSource="address.xsl"></asp:Xml>

    </form>

평점:  없음   
트랙백 주소 : http://www.hoons.kr/15/BoardTrackback.aspx ()
등록된 트랙백 0

'study' 카테고리의 다른 글

zzzzzz  (0) 2012.10.01
자동 가입 방지 폼 구현하기  (0) 2010.12.30
ASP.NET With C Shap [hoons.kr] chapter 3  (0) 2010.12.27
ASP.net With C Shap Chapter 2 [훈스닷넷 강좌 펌]  (0) 2010.12.27
이미지 따라 움직이는 마우스  (0) 2010.12.26

강좌 최초 작성일 : 2004년 04월 01일
  강좌 최종 수정일 : 2004년 08월 17일 

  작성자 : YouKnow(문윤호) 
youknow@fuz.co.kr
  편집자 : HOONS(박경훈) http://www.hoonsbara.com

  강좌 제목 : ASP.NET Summary Ver.2 Chapter 3 (HTML 서버 컨트롤 사용하기)
 


    1. 텍스트 편집

    사용자로부터 텍스트 값을 입력받고 편집하도록 하는 컨트롤에는 HtmlInputText 컨트롤과 HtmlTextArea 컨트롤이 있다.

<form id="Form1" method="post" runat="server">
        <DIV style="DISPLAY: inline; Z-INDEX: 102; LEFT: 24px; WIDTH: 160px; POSITION: absolute; TOP: 24px; HEIGHT: 18px"  ms_positioning="FlowLayout"><FONT face="굴림">사용자 ID :</FONT></DIV>

        <!-- type을 text로 설정하여 Text Field로 사용한다. -->
        <INPUT style="Z-INDEX: 101; LEFT: 200px; POSITION: absolute; TOP: 24px" type="text" id="Text1"  name="Text1" runat="server">
        <DIV style="DISPLAY: inline; Z-INDEX: 103; LEFT: 24px; WIDTH: 160px; POSITION: absolute; TOP: 56px; HEIGHT: 24px" ms_positioning="FlowLayout">비밀번호 :</DIV>

        <!-- type을 password로 설정하여 Password Field로 사용한다. -->
        <INPUT style="Z-INDEX: 104; LEFT: 200px; POSITION: absolute; TOP: 56px" type="password" id="Password1" name="Password1" runat="server"> 

        <!-- 
            Wrap 프로퍼티는 soft, hard, off 세가지 모드를 가질 수 있다.
            soft : Word wrapping O, Line Feed 전송 X
            hard : Word wrapping O, Line Feed 전송 O
            off  : Word wrapping X, Line Feed 전송 X
        -->

        <TEXTAREA style="Z-INDEX: 105; LEFT: 24px; WIDTH: 232px; POSITION: absolute; TOP: 96px; HEIGHT: 120px" rows="7" cols="26" id="TEXTAREA1" name="TEXTAREA1" runat="server">
        </TEXTAREA> 

        <TEXTAREA style="Z-INDEX: 106; LEFT: 264px; WIDTH: 232px; POSITION: absolute; TOP: 96px; HEIGHT: 120px" rows="7" cols="26" id="TEXTAREA2" name="TEXTAREA2" wrap="hard" runat="server">
        </TEXTAREA>

    </form>


 (소스) InputText.aspx

    2. 명령 (Commands)

    서버 코드에 의한 폼의 특정 처리를 위해서 서버로 폼을 전송하는 역할을 하는 것으로 HtmlButton, HtmlInputButton, HtmlInputImage 컨트롤이 있다.

    <form id="Form1" method="post" runat="server">

        텍스트버튼 : <button runat="server" id="button1" type="button">버튼입니다.</button>
        <br>
        이미지버튼 : <button runat="server" id="button2" type="button"><img src="../image/write.gif"></button>
        <br>
        <INPUT type="button" value="Button" id="Button3" name="Button3" runat="server">&nbsp;&nbsp;
        <INPUT type="submit" value="Submit" id="Submit1" name="Submit1" runat="server">&nbsp;&nbsp;
        <INPUT type="reset" value="Reset" id="Reset1" name="Reset1" runat="server">
        <P><input type="image" id="Image1" src="../image/write.gif" name="Image1" runat="server" alt="글쓰기"></P>

    </form>


    (소스) Button.aspx

    3. 리스트에서 선택

    HtmlSelect 컨트롤은 윈도 애플리게이션의 콤보박스(combobox)나 리스트박스(listbox) 컨트롤과 같은 역할을 하는 것으로 사용자에게 여러 아이템을 목록을 보여 주고 특정 아이템을 선택하도록 하는 역할을 한다. 이 컨트롤은 <select>...</select> 태그와 맵핑된다. DropDown이나 ListBox 컨트롤을 드래그 한 후 마우스 오른쪽 버튼을 클릭한 뒤 속성을 클릭하면 Text와 Value 값을 입력하여 아이템을 추가 할 수 있다. 이때 크기(size)의 설정에 따라 DropDown 또는 ListBox 형식으로 렌더링 된다.

    4. 이미지 출력

    HtmlImage 컨트롤은 이미지를 보여 주는 역할을 하며 <img> 태그와 맵핑된다. HtmlImage 컨트롤의 속성 창에서 ''src'' 프로퍼티의 확장버튼을 클릭하면 ''이미지 선택'' 창이 열린다. 이미지 선택 창의 중단에 위치한 ''URL 형식''에는 그림에서 보는 것처럼 ''루트 상대적'', ''문서 상대적'', ''절대적''이라는 세가지 항목이 있는데 이것은 이미지의 경로를 표현하는데 사용할 형식을 설정하는 부분이다.

    ① 루트 상대적(Root Relative)    : /프로젝트명/images/logo_xpert.gif

    ② 문서 상대적(Doc Relative)     : images/logo_xpert.gif

    ③ 절대적(Absolute)          : http://서버명/프로젝트명/images/logo_xpert.gif

    5. 상태값 저장

    HtmlInputHidden은 웹 페이지의 폼 내부에 애플리케이션의 프로세싱의 필요한 특정값을 저장할 수 있는 컨트롤이다. 폼의 상태 정보를 저장한다. (서버로의 라운드 트립이 발생하더라도 유지하고 있어야 할 정보에 사용한다.) 사용자가 웹 브라우저의 HTML 소스 보기를 했을 때에는 이 값이 노출되므로 보안이 필요한 데이터를 이 컨트롤에 저장하는 것을 올바르지 않다. 반면 ASP.Net에서는 Session이나 Cookie 객체 외에 State랄 객체가 제공되는데 이를 응용하면 기존에 hidden 태그를 사용했던 부분을 대체할 수 있다.

    6. 내비게이션

    HtmlAnchor 컨트롤은 HTML의 주요 특징 중의 하나인 하이퍼링크를 이용하여 다른 페이지로의 내비게이션을 위한 컨트롤이다.

    7. 값 설정

    HtmlInputCheckBox : 사용자가 체크할 수 있는 박스를 만든다. CheckBox 컨트롤은 Label을 하나씩 포함한다.

    HtmlInputRadioButton : 사용자가 선택할 수 있는 버튼을 만든다. 여러 항목 중에서 사용자에게 하나를 선택하게 할 때 사용된다.

<form id="Form1" method="post" runat="server">
        <P><FONT face="굴림"><SELECT id="Select1" name="Select_Drop" runat="server">

                <OPTION value="문윤호" selected>younho</OPTION>
                <OPTION value="윤용운">yabado</OPTION>
                <OPTION value="김재실">nyaong2g</OPTION>
                <OPTION value="김현승">puzzle</OPTION>
                <OPTION value="김유철">nettalk</OPTION>
            </SELECT></FONT></P>

        <P runat="server"><SELECT id="Select2" size="4" name="Select_List" runat="server">
            <OPTION value="김순근">noenemy</OPTION>
            <OPTION value="안재우">lancers</OPTION>
            <OPTION value="이동범">funnyfox</OPTION>
            <OPTION value="김현승">puzzle</OPTION>
            <OPTION value="김유철">nettalk</OPTION>
        </SELECT></P>

        <P runat="server">align : <IMG alt="닷넷 엑스퍼트1" src="/WebTest/image/logo_xpert.gif" id="IMG1" runat="server" align="top"> top</P>

        <P runat="server">align : <IMG id="IMG2" alt="닷넷 엑스퍼트2" src="../image/logo_xpert.gif" runat="server" align="middle"> middle</P>
        <P runat="server" id="P1">align : <IMG id="IMG3" alt="닷넷 엑스퍼트3" src="/WebTest/image/logo_xpert.gif" runat="server" align="bottom"> bottom</P>
        <P>
            <input type="hidden" runat="server" id="Hidden1" value="문윤호">
            <br>
            <a href="http://www.asp.net" runat="server" target="_blank">ASP.Net Site로 이동</a>
        </P>

        <FONT face="굴림">당신이 좋아하는 여자 연예인은 ?</FONT><br>
        <INPUT type="checkbox" id="Checkbox1" name="Checkbox1" runat="server"><FONT face="굴림">&nbsp;전지현</FONT><br>
        <INPUT type="checkbox" id="Checkbox2" name="Checkbox2" runat="server"><FONT face="굴림">&nbsp;이영애</FONT><br>
        <INPUT type="checkbox" id="Checkbox3" name="Checkbox3" runat="server"><FONT face="굴림">&nbsp;김현주</FONT><br>
        <br>

        <INPUT type="submit" value="Submit" id="Submit1" name="Submit1" runat="server">
        <P><FONT face="굴림"> 다음중 ASP.NET의 특징이 아닌것은?<br>
            <INPUT type="radio" id="Radio1" value="Radio1" name="RadioGroup" runat="server">&nbsp;호출시마다 매번 컴파일된다.<br>
            <INPUT type="radio" id="Radio2" value="Radio2" name="RadioGroup" runat="server">&nbsp;웹 팜 환경에서 Session 변수를 공유할 수 있다.<br>
            <INPUT type="radio" id="Radio3" value="Radio3" name="RadioGroup" runat="server">&nbsp;.NET 플랫폼을 지원한다.<br>
            <INPUT type="radio" id="Radio4" value="Radio4" name="RadioGroup" runat="server">&nbsp;OOP를 지원한다.<br>
            <INPUT id="Submit2" type="submit" value="Submit" name="Submit2" runat="server"></FONT>
        </P>

    </form>


(소스) htmlselect.aspx

    체크박스 및 라디오버튼에 무엇이 선택되었는 확인하기 위해 Submit 버튼을 2개 추가 하였다. 디자인 모드에서 버튼을 더블 클릭하면 자동으로 이벤트를 설정하고 해당 위임자 메소드가 추가 되는데 이곳에 선택된 값에 대한 결과를 Display할 수 있도록 작업하자.

    private void Submit1_ServerClick(object sender, System.EventArgs e)
    {
        string strMsg = "선택한 연애인 : ";
        if (Checkbox1.Checked == true)
            strMsg += " 전지현 ";
        if (Checkbox2.Checked == true)
            strMsg += " 이영애 ";
        if (Checkbox3.Checked == true)
            strMsg += " 김현주 ";
        Response.Write(strMsg + "<hr>");
    }

    private void Submit2_ServerClick(object sender, System.EventArgs e)
    {
        string strMsg = null;       
        if(Radio1.Checked == true)
            strMsg = "정답입니다.<hr>";
        else
            strMsg = "틀렸습니다. 1장부터 다시 보세요.<hr>";
        Response.Write(strMsg);
    }

    8. 테이블 관련

    HtmlTable <table> Table을 생성한다. HtmlTableRow <tr> Table 내에 하나의 Row를 생성한다. HtmlTableCell <td> Row 내에 하나의 Cell을 생성한다. 대부분의 HTML 페이지가 테이블 태그에 의해서 그 레이아웃이 결정되기 때문이고 배경색이나 글자 크기 등의 설정에 따라서 사용자에게 보여질 페이지가 천차만별로 변하기 때문이다. VS.NET에서는 이와 같은 테이블의 스타일을 GUI 환경에서 편집할 수 있는 기능을 제공하는데 컨테스트 메뉴에서 ''스타일 작성''을 선택하여 설정할 수 있다.

    9. 파일 전송

    HtmlInputFile 컨트롤은 웹 페이지를 통해 클라이언트에서 서버로 파일을 전송할 때 사용되는 컨트롤이다. 바이너리 모드로 파일을 전송하기 위해선 form의 enctype을 ''multipart/form-date''로 설정해 줘야 한다. ASP.NET에서는 업로드 기능이 기본적으로 제공되므로 더 이상 외부 객체에 의존할 필요가 없다. HtmlInputFile 클래스의 PostedFile 속성은 첨부된 파일에 대해 접근할 수 있으며 SaveAs라는 메소드를 이용해서 파일을 업로드해서 특정 경로에 저장할 수 있다.

    10. HtmlGenericControl : 컨트롤로 변화 되어야 할 HTML 요소를 위한 기본적인 객체 모델 (프로퍼티, 메소드, 이벤트)

    <span | body | div | font | others runat="server" id="컨트롤 ID">
        태그 사이의 내용
    </span | body | div | font | others>

<form id="Form1" method="post" encType="multipart/form-data" runat="server">
        <FONT face="굴림">
            <TABLE id="Table1" cellSpacing="1" cellPadding="1" width="80%" border="1" runat="server">
                <TR>
                    <TD>1.1</TD>
                    <TD>1.2</TD>
                    <TD>1.3</TD>
                </TR>
                <TR>
                    <TD>2.1</TD>
                    <TD>2.2</TD>
                    <TD>2.3</TD>
                </TR>
                <TR>
                    <TD>3.1</TD>
                    <TD>3.2</TD>
                    <TD>3.3</TD>
                </TR>
            </TABLE>
        </FONT>
        <br>
        <INPUT type="file" id="File1" name="File1" runat="server">
        <br><br>
        <INPUT id="Submit1" type="submit" value="업로드하기" name="Submit1" runat="server">
    </form>

   (소스) htmltable.aspx


  강좌 최초 작성일 : 2004년 04월 01일
  강좌 최종 수정일 : 2004년 08월 17일 

  작성자 : YouKnow(문윤호) 
youknow@fuz.co.kr
  편집자 : HOONS(박경훈) http://www.hoonsbara.com

  강좌 제목 : ASP.NET Summary Ver.2 Chapter2 (웹폼 생성및 서버 컨트롤의 사용)
 


-. 웹 폼으로 페이지를 생성하고 Html 컨트롤 및 웹 서버 컨트롤을 사용해 보자.

    1. 웹 폼(HelloCsharp.aspx)을 생성하자.
    이 페이지는 코드 비하인드(CS파일) 작업을 하지 않고, 스크립트 처리하는 부분을 볼것이다. 웹폼에 TextBox, Button 웹 컨트롤을 추가하고, Html 모드에서 C# 스크립트를 작성하여 컨트롤에 연결한다.

<script language="C#" runat="server">
    public void btnOK_Click(Object sender, System.EventArgs e)
    { txtMessage.Text = "Hello, C#!"; }
    </script>

    <HTML>
        <HEAD>
            <title>WebForm1</title>
            <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
            <meta name="CODE_LANGUAGE" Content="C#">
            <meta name="vs_defaultClientScript" content="JavaScript">
            <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        </HEAD>

        <body MS_POSITIONING="GridLayout">
            <form id="Form1" method="post" runat="server">
                <asp:TextBox ID="txtMessage" unat="server"></asp:TextBox>
                <asp:Button ID="btnOK" Runat="server" Text="확인" OnClick="btnOK_Click"></asp:Button>
            </form>
        </body>

    </HTML>

    코드 작성이 완료 되었으면 디자인 모드에서 오른쪽 버튼을 클릭한 후 '브라우저에서 보기' 선택하면 자동으로 컴파일 후 브라우저가 열리면서 실행 될 것이다. 실행되면 Button Control을 클릭해 보자. TextBox Control에 'Hello, C#!' 찍히는 것을 확인 할 수 있을 것이다.

    2. 웹 폼(Hello.aspx)을 생성하자.
     이 페이지에선 코드 비하인드 작업을 실행하여 TextBox에 글자를 찍어 볼 것이다. 웸 폼에 TextBox, Button Control을 상기와 동일하게 추가하고, Button Control의 이벤트 중 클릭 이벤트를 발생 시키자. 이벤트는 해당 컨트롤의 속성창 중 이벤트 속성창이 있으며 거기에서 처리하고자 하는 이벤트를 더블 클릭하면 코드 비하인드 소스(CS파일)에 자동 추가 된다. 여기에서 확인할 수 있는 것은 Page 지시어 이다. 어느 Codebehind 소스와 연결 되었는지 어느 클래스에서 상속 받는지를 지정한다. Page 지시어(Directive)라고 하는데 컴파일러에게 적절한 언어 컴파일러에 대한 정보 외에 여러 속성으로 페이지의 특성을 지정할 수 있다.  
Codebehind="Hello.aspx.cs" Complie전에 필요, Inherits="WebTest.Hello" WebTest : NameSpace(어셈블리명), Hello : Class(클래스명)
    

<%@ Page language="c#" Codebehind="Hello.aspx.cs" AutoEventWireup="false" Inherits="WebTest.Hello" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

    <HTML>
        <HEAD>
            <title>Hello</title> 
            <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
            <meta name="CODE_LANGUAGE" Content="C#">
            <meta name="vs_defaultClientScript" content="JavaScript">
            <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        </HEAD>

        <body ms_positioning="GridLayout">
            <form id="Form1" method="post" runat="server">
                <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 24px" runat="server"></asp:TextBox>
                <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 184px; POSITION: absolute; TOP: 24px" runat="server" Text="Button"></asp:Button>
            </form>
        </body>

    </HTML>

(소스) Hellow.aspx

    Html 소스 코드 작성이 완료 되면, CS 파일에 필요한 기능을 작업해 보자. 여기서 확인할 것은 디자인 모드에서 추가한 Control이 클래스의 멤버로 추가 되었음을 확인할 수 있고, Button Click 이벤트가 InitializeComponent 메소드에 자동 추가 되었음을 확인 할 수 있다. Button Control Click 이벤트의 위임자 메소드는 Button1_Click 이며, 클릭시 TextBox의 Text에 'Hello, C#!' 대입시킨다.

using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    namespace WebTest
    {
        /// <summary>
        /// Hello에 대한 요약 설명입니다.
        /// </summary>
        public class Hello : System.Web.UI.Page  // Page Class를 상속 는다.
        {
            protected System.Web.UI.WebControls.TextBox TextBox1;
            protected System.Web.UI.WebControls.Button Button1;

            private void Page_Load(object sender, System.EventArgs e)
            { // 여기에 사용자 코드를 배치하여 페이지를 초기화합니다. }

            #region Web Form 디자이너에서 생성한 코드
            override protected void OnInit(EventArgs e)
            {
                // CODEGEN: 이 호출은 ASP.NET Web Form 디자이너에 필요합니다.
                InitializeComponent();
                base.OnInit(e);
            }
            /// <summary>
            /// 디자이너 지원에 필요한 메서드입니다.
            /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
            /// </summary>
            private void InitializeComponent()
            {    
                this.Button1.Click += new System.EventHandler(this.Button1_Click);
                this.Load += new System.EventHandler(this.Page_Load);
            }

            #endregion

            private void Button1_Click(object sender, System.EventArgs e)
            {
                TextBox1.Text = "Hello, C#!";
            }
        }
    }

 

(소스)Hellow.aspx.cs

   코드 비하인드 에서 한가지 짚고 넘어가야 할 것은 컨텐츠부인 *.aspx 파일과 코드부인 *.aspx.cs 파일의 관계이다. 나란하게 짝으로 존재하기 때문에 수평적인 관계라고 이해하는 분들이 많다. 하지만 실제는 그렇지 않다. *.aspx 파일은 x.aspx.cs로 부터 클래스를 상속받는 수직적인 관계이다.

    이벤트 모델 : 웹 폼에서 대부분의 이벤트는 클라이언트에서 발생하고 처리는 웹 서버가 담당한다. (Calendar나 AdRotator 웹 컨트롤의 경우에는 서버상에서 이벤트가 발생한다.) 클라이언트에서 발생한 이벤트를 처리하기 위해서 웹 폼 이벤트 모델은 클라이언트의 이벤트 정보를 감지하고 이벤트 메시지는 서버로 전송된다. 이러한 웹에서의 동작은 HTTP POST를 통해 이뤄져야만 한다. 웹 폼 프레임워크는 어떤 이벤트가 발생했는지 판단하기 위해서 POST 정보를 해석해야 하며 그 후 이벤트를 처리하기 위해 작성한 코드에서 적절한 메소드를 호출한다.

    페이지(Page) 이벤트 : Page 객체가 읽혀질 때마다 Page_Load 이벤트가 발생하며 이 이벤트에 대한 핸들러를 작성함으로써 페이지 초기화 작업을 수행할 수 있다. 예를 들어 이 이벤트내에서 데이터베이스를 쿼리문을 실행하여 결과를 페이지에 반영하는 데 사용할 수 있다. 그리고 페이지의 모든 작업을 수행한 뒤에는 Page_Unload 이벤트가 발생한다. 이는 마치 객체지향 프로그래밍에서 클래스 생성자(constructor)와 소멸자(destructor)의 역할과 비슷하다.

    Page.IsPostBack 프로퍼티 : Page_Load 이벤트는 페이지가 읽혀질 때마다 발생하기 때문에 그 때마다 페이지를 초기화 하는 작업을 수행하는 것은 낭비일 수 있다. Page 클래스는 IsPostBack이라는 불린(Boolean)형 프로퍼티를 제공하는데 이 값이 True면 해당 페이지는 이미 렌더링된 페이지가 사용자에 의해서 다시 호출된 것을 의미한다. Page 클래스의 IsPostBack의 값이 True일 때에는 데이터베이스를 사용하지 않고 각 컨트롤에 저장된 상태 값(viewstate)을 이용해서 페이지를 구성할 수 있는데, http POST 정보에 있는 _VIEWSTATE 값을 디코딩해서 페이지에 포함된 서버 컨트롤

    의 값을 초기화 하게 되는 것이다. ('_VIEWSTATE'라는 이름의 hidden 요소가 자동 추가되는데 여기의 값은 암호문 처럼 알아 볼 수 없는 값으로 가득차 있다.)

    3. 위의 이벤트를 직접 Control를 활용하는 예제로 확인해 보겠다.
    웹 폼(control_event.aspx)을 추가하고 TextBox, CheckBox, Button Control을 추가 한다. 각각 Control의 속성창내 이벤트 영역에서 TextBox는 TextChanged, CheckBox는 CheckedChanged, Button는 Click 이벤트를 설정하고, CheckBox 2개중 1개에는 체크시 라운드트립이 발생하도록 AutoPostBack을 True로 설정하자. 설정완료한 Html Source이다.

    <%@ Page language="c#" Codebehind="control_event.aspx.cs" AutoEventWireup="false" Inherits="WebTest.control_event" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

    <HTML>
        <HEAD>
            <title>control_event</title>
            <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
            <meta name="CODE_LANGUAGE" Content="C#">
            <meta name="vs_defaultClientScript" content="JavaScript">
            <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
        </HEAD>

        <body ms_positioning="GridLayout">
            <form id="Form1" method="post" runat="server">
                <asp:TextBox id="TextBox1" runat="server" style="Z-INDEX: 103; LEFT: 16px; POSITION: absolute; TOP: 216px"></asp:TextBox>
                <asp:CheckBox id="CheckBox1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 256px" runat="server"></asp:CheckBox>
                <asp:CheckBox id="CheckBox2" style="Z-INDEX: 104; LEFT: 136px; POSITION: absolute; TOP: 256px" runat="server" AutoPostBack="True"></asp:CheckBox>
                <asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 16px; POSITION: absolute; TOP: 288px" runat="server" Text="Button"></asp:Button>
            </form>
        </body>

    </HTML>

(소스)Hellow.aspx

    각 Control별 설정한 이벤트 메소드 안에 기능을 추가하여 이벤트가 발생하였음을 확인해 보도록 하자.

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    namespace WebTest
    {
        /// <summary>
        /// ASP.Net 페이지의 프로세싱이 Page_Init → Page_Load → PageUpLoad 단계로 이루어짐
        /// </summary>
        public class control_event : System.Web.UI.Page
        {
            protected System.Web.UI.WebControls.TextBox TextBox1;
            protected System.Web.UI.WebControls.CheckBox CheckBox1;
            protected System.Web.UI.WebControls.CheckBox CheckBox2;
            protected System.Web.UI.WebControls.Button Button1;         

            private void Page_Load(object sender, System.EventArgs e)
            {
                // 여기에 사용자 코드를 배치하여 페이지를 초기화합니다.
            }

            #region Web Form 디자이너에서 생성한 코드

            override protected void OnInit(EventArgs e)
            {
                // CODEGEN: 이 호출은 ASP.NET Web Form 디자이너에 필요합니다.
                InitializeComponent();
                base.OnInit(e);
            }               

            /// <summary>
            디자이너 지원에 필요한 메서드입니다.
            이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
            /// </summary>

            private void InitializeComponent()
            {    
                this.CheckBox1.CheckedChanged += new System.EventHandler(this.CheckBox1_CheckedChanged);
                this.Button1.Click += new System.EventHandler(this.Button1_Click);
                this.TextBox1.TextChanged += new System.EventHandler(this.TextBox1_TextChanged);
                this.CheckBox2.CheckedChanged += new System.EventHandler(this.CheckBox2_CheckedChanged);
                this.Load += new System.EventHandler(this.Page_Load);
            }

            #endregion

            /// <summary>
            /// 이벤트 발생
            /// </summary>
            /// <param name="sender">이벤트를 발생시킨 객체(object)</param>
            /// <param name="e">이벤트의 정보를 가지는 이벤트 객체(arguments)</param>

            private void TextBox1_TextChanged(object sender, System.EventArgs e)
            {
                Response.Write ("TextBox1 컨트롤 : TextChanged 이벤트 발생<br>");
            }

            /// <summary>
            기본적으로 Button 계열의 컨트롤의 Click 이벤트만 즉시 PostBack 하도록 설정되어 있다. 그 외의 이벤트들을 페이지의 Post시에 일괄적으로 발생하고 처리된다. 하지만 경우에 따라서는 Button 이외의 컨트롤에서도 이벤트가 발생했을 때 즉시 PostBack 되도록 할 필요가 있는데 이때 사용하는 것이 "AutoPostBack" 프로퍼티이다. → ASP에선 OnClick Event를 Catch하여 Submit 시키는 방법을 사용한다.
            /// </summary>

            private void CheckBox1_CheckedChanged(object sender, System.EventArgs e)
            { 
                Response.Write("CheckBox1 컨트롤 : CheckedChanged 이벤트 발생<br>"); 
            }
            private void Button1_Click(object sender, System.EventArgs e)
            { 
                Response.Write("Button1 컨트롤 : Click 이벤트 발생<br>"); 
            }

            /// <summary>
            CheckBox2의 속성 창에서 "AutoPostBack"이라는 프로퍼티를 "True"로 설정하여, 체크/언체크시에 즉시 PostBack이 이루어 지도록 할 수 있다. AutoPostBack 프로퍼티는 기본적으로 'false'로 설정되어 있다. 이것은 불필요한 PostBack으로 인한 서버나 네트워크 부하를 줄이기 위함이다. 하지만 티켓예매시스템 같은 곳에서는 프로퍼티를 유용하게 사용할 수 있을 것이다.
            /// </summary>

            private void CheckBox2_CheckedChanged(object sender, System.EventArgs e)
            {
                Response.Write("CheckBox2 컨트롤 : CheckedChanged 이벤트 발생<br>");
            }
        }
    }

(소스)Hellow.aspx.cs 

    4. 웹 폼은 일반 컴포넌트 객체와 비슷한 수명주기를 가지는데 추가적으로 '렌더링'이라는 과정을 가진다.
   이러한 렌더링 과정을 이해하기 위한 핵심 용어가 바로 컨트롤 트리(control tree)이다.

    Page_Init 단계에서 페이지 내부의 컨트롤들에 대해서 계층적인 구조를 생성한다고 했었는데 이것이 바로 컨트롤 트리이다. Page는 이러한 트리 구조에서 유일한 루트가 된다. 이 루트는 시작점으로 해서 하나의 페이지는 컬렉션 기반의 계층구조로 구성이 된다. 그리고 모든 처리가 끝난 뒤에는 구성된 컨트롤 트리의 순서에 따라 차례대로 클라이언트로 보내어질 HTML로 렌더링되는 것이다. ASP.NET의 @page 지시어(Directive)에는 이러한 컨트롤 트리를 간단히 확인 할 수 있게끔 'Trace'라는 속성을 제공한다. 이러한 지시어에는 @page외에 @Register, @Assembley등이 존재한다.

<%@ Page language="c#" Trace="True" TraceMode="SortByCategory" %> 
    <html>
      <body>            
        <form runat="server">
            이름을 입력하세요 :  <asp:TextBox Runat=server />
        </form>         
      </body>
    </html>

    상기 소스를 실행하면 보고서 형식으로 해당 페이지에 관련된 여러 정보가 출력되는 것을 확인 할 수 있을 것이다.

'study' 카테고리의 다른 글

ASP.NET With C Shap [hoons.kr] chapter 3  (0) 2010.12.27
ASP.net With C Shap Chapter 2 [훈스닷넷 강좌 펌]  (0) 2010.12.27
ASP 함수 모음  (0) 2010.12.26
저장 프로시져  (0) 2010.12.26
radio button event  (0) 2010.12.25



1. 대소문자의 구분

  asp 에서는 다른 언어와는 달리 대소문자의 구분이 없다. 그냥 단지 알아보기 쉽게 하기 위해서 대소문자를 사용하는 것이다.

  예) dim strname 는 Dim strName 과 같은 구문이다.


2. 변수 선언

- 변수나 배열의 변수 선언에는 dim 을 사용한다.

- Option Explicit 를 asp 맨 앞에 사용하여 변수를 꼭 선언하도록 하였으면 모든 변수는

   dim 으로 선언하여 사용하여야한다.

예) 변수 선언 : dim strName, strEmail

     배열 선언 : dim monthArry(11)

- Redim : 배열 크기의 재선언에 사용한다.

           redim 의 사용은 처음 배열 선언시에 배열의 크기를 정해 주지 않았을 때에만 가능하다.

- Preserve : 데이터를 저장한 채로 배열의 크기를 늘려준다. 즉, 기존의 들어가 있는 데이터는 그대로 아직 존재한다.




3. 구분자
- 구분자로는 :(콜론) 이 쓰인다.
- 구분자는 실행할 문장을 한줄단위로 구분짓는 역할을 한다.
예) dim strName : strName = "mshout77" : response.write "
strName = " & strName





4. 연결연산자
- &
- &가 문자열에 쓰이면 문장과 문장을 연결해서 한 문장으로 만들어준다.
- &가 변수에 쓰이면 변수의 값을 & 다음의 값과 이어준다.
- 예) dim strName, strFName, all

       strName = "77"

       strFName = "mshout"

       all = strName&strFName

      

       response.write all

       결과값은 mshout77 이라고 출력된다.





5. 주석
- ASP에서 주석처리에는 '(작은 따옴표) 가 쓰인다.
- 행에서 ' 다음의 내용은 주석처리되어 해석이 되지 않는다.




6. 함수
1) cdbl(문자열) - 문자열을 소수점이하까지도 출력(큰 숫자에 사용한다)


2) round(숫자,반올림할 위치) - 지정한 소수점 자리에서 반올림한 값을 리턴


3) asc(문자열) - 문자열에서 첫번째 문자에 대한 ansi 코드 번호를 리턴


4) chr(아스키코드번호) - 지정된 번호와 일치하는 ansi 문자로 구성된 문자열을 리턴


5) hex(숫자) - 숫자의 16진수값을 나탸내는 문자열을 리턴


6) fix(숫자) - 숫자의 정수(전체)부분을 리턴 / 음수일때 숫자보다 크거나 같은 첫번째 음의 정수 리턴


7) int(숫자) - 숫자의 정수(전체)부분을 리턴 / 음수일때 숫자보다 작거나 같은 첫번째 음의 정수 리턴


8) sgn(숫자) - 숫자의 부호를 나타내는 정수를 리턴


9) cdate(숫자) - 날짜 형식의 인자값 리턴( 예:cdate(36890) , cdate("2001년 12월 10일") )


10) Clng(숫자) - Long 형식의 문자열 리턴


11) Cstr(숫자) - String 형식의 문자열 리턴


12) Csng(숫자) - Single 형식의 문자열 리턴


13) formatcurrency(숫자) - 숫자를 화폐형식으로 전환


14) formatdatetime(date,1) - date 함수의 표시형태를 바꿈
     - formatdatetime(date,2)
     - formatdatetime(date,3)


15) formatpercent(숫자) - 숫자를 백분율로 표시


16) strConv - 지정한대로 문자를 변환, strConv(문자열,conversion [,LCID])
    conversion 에 가능한 값
     - vbUpperCase 1 문자열을 대문자로 변환
     - vbLowerCase 2 문자열을 소문자로 변환
     - vbPropercase 3 문자열 단어의 첫글자를 대문자로 변환
     - vbWide 4 1바이트문자를 2바이트 문자로 변환
     - vbNarrow 5 2바이트문자를 1바이트문자로 변환
     - vbUnicode 6 시스템의 기본 코드 페이지를 사용하여 문자열을 unicode 로 변환
     - vbFromUnicode 128 unicode 문자열을 시스템의 기본 코드 페이지로 변환


17) Randomize - 난수 발생기를 초기화
    - 난수값 = Int((상한값 - 하한값) + 1) * Rnd + 하한값
    - 예로 1부터 100사이의 난수를 가져오려면, 난수값 = Int(100 - 1 + 1) * Rnd + 1


18) Atn() - 숫자의 아크 탄젠트 값을 리턴


19) Cos() - 각도의 코사인값을 리턴


20) Exp() - e(자연 로그의 밑)의 인자만큼의 제곱을 리턴


21) Log() - 숫자의 자연로그를 리턴


22) Sin() - 각도의 사인값을 리턴


23) Tan() - 각도의 탄젠트값을 리턴

24) InStr("문자열","찾을 문자") - 문자열의 위치 반환


25) InStrRev("문자열","찾을 문자") - 문자열의 위치를 뒤에서 부터 검색해서 반환


26) Lcase("문자열") - 문자열을 소문자로


27) Ucase("문자열") - 문자열을 대문자로

28) Len("문자열") -문자열의 길이 반환

29) Left("문자열",잘라낼 갯수) - 문자열을 왼쪽에서 지정한 갯수만큼 잘라냄


30) Right("문자열",잘라낼 갯수) - 문자열을 오른쪽에서 지정한 갯수만큼 잘라냄

31) Mid("문자열",시작위치,뽑아낼 갯수) - 문자열의 어느 부위를 뽑아냄


32) Yrim("문자열") - 문자열의 양쪽 공백을 제거


33) Ltrim("문자열") - 문자열의 왼쪽 공백을 제거


34) Rtrim("문자열") - 문자열의 오른쪽 공백을 제거

35) Split("문자열","분리자") - 분리자를 기준으로 문자열을 나눔

36) StrReverse("문자열") - 문자열을 뒤집음

37) IsArray() - 변수가 배열인지의 여부를 나타내는 Boolean 값을 리턴


38) IsDate() - 날짜로 변환될 수 있는지의 여부를 나타내는 Boolean 값을 리턴


39) IsEmpty() - 변수가 초기화 될 수 있는지의 여부를 나타내는 Boolean 값을 리턴


40) IsNull() - 유효한 데이터를 포함하고 있는지의 여부를 리턴


41) IsNumeric() - 숫자로 평가될 수 있는지의 여부를 리턴


42) IsObject() - 유효한 ActiveX혹은 OLE 자동화 개체를 참조하는지의 여부를 리턴


43) Vartype() - 변수의 하위 형식을 나타내는 숫자를 리턴한다.


44) now - 시스템의 시간과 날짜


45) date - 시스템의 날짜


46) time - 시스템의 시간


47) year(now) - 현재의 년도


48) month(now) - 현재의 월



49) day(now) - 현재의 일


50) weekday(now) - 현재의 요일



51) hour(now) - 현재의 시


52) minute(now) - 현재의 분


53) second(now) - 현재의 초


54) DateAdd - 지정된 날짜에 시간을 추가하거나 뺀 새로운 날짜를 반환
   사용법) DateAdd(interval, number, date)
           - interval : 필수적인 인수로 interval을 추가한 날짜를 나타내는 문자식

                     yyyy 년, q 분기, m 월, y 일(일년 기준), d 일, w 요일, ww 주(일년 기준), h 시, n 분, s 초


           - number : 필수적인 인수로 추가할 간격 수의 수식
                     수식에서 양수는 미래의 날짜, 음수는 과거의 날짜이다.


           - date : 필수적인 인수로 interval을 추가한 날짜를 나타내는 Variant 또는 리터럴


   예) DateAdd("m",3,Date)  <-- 현재의 날짜에서 3개월을 더함
       DateAdd("m",-3,Date)  <-- 현재의 날짜에서 3개월을 뺌


55) DateDiff - 주어지는 두 날짜의 간격을 반환
   사용법) DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
           - interval : 필수적인 인수로 날짜1과 날짜2 사이의 차이를 계산하는 데 사용할 interval의 문자식

                     yyyy 년, q 분기, m 월, y 일(일년 기준), d 일, w 요일, ww 주(일년 기준), h 시, n 분, s 초                


           - date1, date2 : 필수적인 인수로 날짜식에서 계산에 사용할 두 날짜


           - firstdayofweek : 선택적인 인수로 요일을 지정하는 상수로 지정하지 않으면 일요일로 간주

                            vbUseSystem 0 NLS(National Language Support) API 설정 사용
                            vbSunday 1 일요일(기본값)
                            vbMonday 2 월요일
                            vbTuesday 3 화요일
                            vbWednesday 4 수요일
                            vbThursday 5 목요일
                            vbFriday 6 금요일
                            vbSaturday 7 토요일

           - firstweekofyear : 선택적인 인수로 연도를 기준으로 한 첫째 주를 지정하는 상수
                            지정하지 않으면 1월 1일을 포함하는 주를 첫째 주로 간주한다.
                            vbUseSystem 0 NLS(National Language Support) API 설정 사용
                            vbFirstJan1 1 1월 1일을 포함하는 주에서 시작(기본값)
                            vbFirstFourDays 2 새해의 처음 4일을 포함하는 주에서 시작
                            vbFirstFullWeek 3 새해의 처음 한 주일(7일)을 포함하는 주에서 시작
  

   예) DateDiff("h", "2001년 12월 30일", Date)
       DateDiff("n", "2001년 12월 30일 09:30:00", now)
       DateDiff("s", "2001년 12월 30일 09:30:00", now)

56) DatePart - 주어진 날짜의 지정된 부분을 반환한다.
   사용법) DatePart(interval, date[, firstdayofweek[, firstweekofyear]])
           - interval : 필수적인 인수로 반환할 시간 간격의 문자식이다.

                     yyyy 년, q 분기, m 월, y 일(일년 기준), d 일, w 요일, ww 주(일년 기준), h 시, n 분, s 초


           - date : 필수적인 인수로 계산할 날짜식



           - firstdayof week : 선택적인 인수로 요일을 지정하는 상수로서 지정하지 않으면 일요일로 간주

                            vbUseSystem 0 NLS(National Language Support) API 설정 사용
                            vbSunday 1 일요일(기본값)
                            vbMonday 2 월요일
                            vbTuesday 3 화요일
                            vbWednesday 4 수요일
                            vbThursday 5 목요일
                            vbFriday 6 금요일
                            vbSaturday 7 토요일


           - firstweekofyear : 선택적인 인수로 연도를 기준으로 한 첫째 주를 지정하는 상수
                            지정하지 않으면 1월 1일을 포함하는 주를 첫째 주로 간주한다.
                            vbUseSystem 0 NLS(National Language Support) API 설정 사용
                            vbFirstJan1 1 1월 1일을 포함하는 주에서 시작(기본값)
                            vbFirstFourDays 2 새해의 처음 4일을 포함하는 주에서 시작
                            vbFirstFullWeek 3 새해의 처음 한 주일(7일)을 포함하는 주에서 시작

   예) DatePart("q", now)

57) DateSerial - 지정된 년, 월, 일의 Date 하위 형식인 Variant를 반환한다.
               즉, 임의의 숫자를 입력받아 날짜 형식으로 반환하는 함수이다.
   사용법) DateSerial(year, month, day)
           year : 100에서 9999까지의 수 또는 수식
           month : 모든 수식
           day : 모든 수식
   예) DateSerial(2001, 12, 25)

58) DateValue - Date 하위 형식의 Variant를 반환한다.
   사용법) DateValue(date)

'study' 카테고리의 다른 글

ASP.net With C Shap Chapter 2 [훈스닷넷 강좌 펌]  (0) 2010.12.27
이미지 따라 움직이는 마우스  (0) 2010.12.26
저장 프로시져  (0) 2010.12.26
radio button event  (0) 2010.12.25
체크박스  (0) 2010.12.25

USE [ClickDB]
GO
/****** Object:  StoredProcedure [dbo].[sp_AddMember]    Script Date: 12/26/2010 18:59:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sp_AddMember]
@userid varchar(20),
@password varchar(20),
@name varchar(20),
@email varchar(20)

as
insert into Member
(userid, password, name, email)
values
(@userid, @password,@name,@email)

return

'study' 카테고리의 다른 글

이미지 따라 움직이는 마우스  (0) 2010.12.26
ASP 함수 모음  (0) 2010.12.26
radio button event  (0) 2010.12.25
체크박스  (0) 2010.12.25
변수 공부를 했습니다.  (0) 2010.12.24


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="radio.aspx.cs" Inherits="radio" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
      <form id="form1" runat="server">
    <div>
            <asp:Label ID="lable" Text="선택하세요" runat="server" /><br />
            <asp:RadioButton ID="rdo1" Text="rdo1" GroupName="gup" AutoPostBack="true"
                runat="server" oncheckedchanged="rdo1_CheckedChanged" />
            <asp:RadioButton ID="rdo2" Text="rdo2" GroupName="gup" AutoPostBack="true"
                runat="server" oncheckedchanged="rdo2_CheckedChanged" />
            <asp:RadioButton ID="rdo3" Text="rdo3" GroupName="gup" AutoPostBack="true"
                runat="server" oncheckedchanged="rdo3_CheckedChanged" />
            <asp:Label ID="lable1" Text="" runat="server" />
    </div>
    </form>
</body>
</html>



____________________________________________________________________________________________
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class radio : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void rdo1_CheckedChanged(object sender, EventArgs e)
    {
        lable1.Text = rdo1.Text;

    }
    protected void rdo2_CheckedChanged(object sender, EventArgs e)
    {
        lable1.Text = rdo2.Text;
    }
    protected void rdo3_CheckedChanged(object sender, EventArgs e)
    {
        lable1.Text = rdo3.Text;

    }
}

'study' 카테고리의 다른 글

ASP 함수 모음  (0) 2010.12.26
저장 프로시져  (0) 2010.12.26
체크박스  (0) 2010.12.25
변수 공부를 했습니다.  (0) 2010.12.24
공부는 하는데 ㅋ  (0) 2010.12.23

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="checkbox.aspx.cs" Inherits="checkbox" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <table border=1 cellpadding=1 cellspacing=0>
        <tr>
            <td>어떤 언어를 사용 합니까?</td>
            <td><asp:Button ID="btn" Text="확인" runat="server" onclick="btn_Click" /> </td>
        </tr>
        <tr>
            <td colspan=2>
                <asp:CheckBox ID="checkbox1" runat="server" Text="비베닷넷" />
                <asp:CheckBox ID="checkbox2" runat="server" Text="씨삽닷넷" />
                <asp:CheckBox ID="checkbox3" runat="server" Text="제이샵닷넷" />
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <asp:Label ID="label1" runat="server" />
            </td>
        </tr>
    </table>
    </form>
</body>
</html>
??????????????????????????????????????????????????????????????????????????????????????????????????
code



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class checkbox : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
     
    }
    protected void btn_Click(object sender, EventArgs e)
    {
        string messg = "";

        if (checkbox1.Checked)
        {
            messg = checkbox1.Text;

        }
        if (checkbox2.Checked)
        {
           if (checkbox1.Checked)
            {
            messg += ",";
            }
            messg += checkbox2.Text;
        }


        if (checkbox3.Checked)
        {
          
         
          
            messg += checkbox3.Text;
        }
        label1.Text = messg;
    }
}

'study' 카테고리의 다른 글

ASP 함수 모음  (0) 2010.12.26
저장 프로시져  (0) 2010.12.26
radio button event  (0) 2010.12.25
변수 공부를 했습니다.  (0) 2010.12.24
공부는 하는데 ㅋ  (0) 2010.12.23

default.aspx.cs
/////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        int x = 2;
        string a = "<br>";

        Response.Write(x++);
        Response.Write (a) ;
        x = 2;
        Response.Write(++x);
        Response.Write(a);
        Response.Write(a);
        Response.Write(a);
        Response.Write(a);
        //정수형 계산식
        int n = 100;
        short s = (short)n;
        Response.Write("short         " + s);
        Response.Write(a);
        Response.Write(a);
        Response.Write(a);
        Response.Write(a);
        double pp = (double)n;
        Response.Write("double" + "&nbsp&nbsp&nbsp&nbsp" + pp);
        Response.Write(a);
        Response.Write(a);
        Response.Write(a);
        Response.Write(a);
        double z = (double)3 / (double)2;
        Response.Write((double)z);

        Response.Write(a);
        Response.Write(a);
        Response.Write(a);
        //int string 변환

        int aa = 1;
        Response.Write(aa);

        string aaa = aa.ToString();

        Response.Write("int a를 Tostring 이용하여 변환"+"&nbsp&nbsp" + aaa);


        Response.Write("<br>"+"시간 출력해보기");

        Response.Write(DateTime.Now);
        Response.Write("<br>" + "시간 출력해보기");
        DateTime date = Convert.ToDateTime("01/01/2002");
        Response.Write(date.ToString());

 


    }
}



default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="font-size:10pt;font-family:Verdana">
    <form id="form1" runat="server">
    <div>
   
    </div>
    </form>
</body>
</html>


'study' 카테고리의 다른 글

ASP 함수 모음  (0) 2010.12.26
저장 프로시져  (0) 2010.12.26
radio button event  (0) 2010.12.25
체크박스  (0) 2010.12.25
공부는 하는데 ㅋ  (0) 2010.12.23

'study' 카테고리의 다른 글

ASP 함수 모음  (0) 2010.12.26
저장 프로시져  (0) 2010.12.26
radio button event  (0) 2010.12.25
체크박스  (0) 2010.12.25
변수 공부를 했습니다.  (0) 2010.12.24

+ Recent posts