블로그 이미지
내게 능력 주시는 자 안에서 내가 모든것을 할수 있느니라 - 빌립보서 4 : 13 - happydong

카테고리

Happydong (1363)
프로그래밍 (156)
MUSIC (16)
인물 (3)
Utility (10)
세미나 소식&내용 (22)
IT뉴스 (18)
운동 (830)
CAFE (10)
Life (282)
Total
Today
Yesterday

'프로그래밍'에 해당되는 글 156건

  1. 2007.11.17 AJAX 방명록 만들기[3]
  2. 2007.11.17 AJAX 방명록 만들기[2]
  3. 2007.11.17 AJAX 방명록 만들기[1]



AJAX 방명록 만들기[3]


1,2 강좌는 코드에 대한 내용이 별로 없어서 지루했을 것 같습니다.

이제 본격적으로 코드를 한번 살펴 보도록 하겠습니다. .aspx 페이지를 보시면 아래와 같은 코드가 들어가 있을 것입니다.  

 .aspx페이지

 

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master"

AutoEventWireup="true" CodeFile="Guest_Board.aspx.cs" Inherits="_Default" Title="Untitled Page" %>


<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"><?xml:namespace prefix = o /><?xml:namespace prefix = o /><?xml:namespace prefix = o /><?xml:namespace prefix = o /><?xml:namespace prefix = o /><?xml:namespace prefix = o /><?xml:namespace prefix = o /><?xml:namespace prefix = o /><?xml:namespace prefix = o />

</asp:Content>

위 코드에서 <asp:Content> 와 </asp:Content> 사이에 아래와 같은 코드를 집어 넣습니다.

 .aspx 페이지

 <%@ Page Language="C#" MasterPageFile="~/MasterPage.master"

AutoEventWireup="true" CodeFile="Guest_Board.aspx.cs" Inherits="_Default" Title="Untitled Page" %>


<%--########## 여기도 추가해주세요!!아래에서 설명하겠습니다.###### --%>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>


<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">


<%--##########이렇게 추가해주세요!!###### --%>

<asp:ScriptManager runat="server" ID="Scritemanager">

</asp:ScriptManager>

<asp:UpdatePanel runat="server" ID="Updatepanl">

<ContentTemplate>


</ContentTemplate>

</asp:UpdatePanel>


</asp:Content>


위와 같이 코드를 직접 입력해 주셔도 되고요!!아니면 컨트롤을 끌어다가 넣으셔도 상관 없습니다. 컨트롤은 아래 그림과 같이 있습니다.

사용자 삽입 이미지

위 컨트롤을 선택후 원하는 위치에 끌어다가 넣으면 코드가 알아서 생성됩니다. 그럼 ID만 정해주면 되겠죠!그럼 위 코드에서 ScriptManagerUpdatePanel 이 왜들어가는지 약간 궁금하시리라 생각됩니다. Ajax 방명록을 만들기위해서 제일 중요한 컨트롤들 입니다. 이 두개의 컨트롤이 없다면 조금 복잡한 코드로 만들어야 하겠죠!
 . ScriptManager 컨트롤은 Ajax 컨트롤을 사용하려면 꼭 넣어야하는 코드입니다. 안그러면 일단 에러가 나거든요!! 이름 그대로 Ajax컨트롤들의 Manager 역활을 담당하는것 같습니다.
 . UpdatePanel 컨트롤은 정말 대단한것 같습니다. 기존에 Ajax기술을 구현하려면 Ajax engine를 따로 구현해야 했죠. 그렇게 해야 클라이언트 브라우저에서 깜빡이 없이 데이터가 처리가 될수 있었죠.  UpdatePanel안에 감싸져 있는 것들은 페이지 깜빡인 없이 데이터가 처리될 수 있습니다! 따로 Ajax engine를 만들필요 없이말이죠. 정말 대단한 컨트롤인것 같습니다. 하지만 UpdatePanel를 너무 남발하면 않좋다고 합니다. 그리고 Ajax컨트롤들도 너무 많이 사용하면 브라우저가 무거워진다고 하네요.자 그럼 이제 글쓰는 부분의 HTML코드를 보겠습니다.

 

 HTML Code (.aspx페이지)

<asp:UpdatePanel runat="server" ID="Updatepanl">

<ContentTemplate>

<%--########################방명록 글쓰기 시작 ######################## --%>

<div id="Pnl_write" class="pnl_Write">

<div style="color: Red; font-size: 9pt; text-align: center;" runat="server" id="write_Header1">

※ 주의 닉네임은 1~12자이내,비밀번호는4~12자이네,내용은 1자이상이여야합니다!

<div style="color: #CC6666; font-size: 18pt; text-align: center;">

Dong wook 방명록 남겨주세요~^^&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:Image runat="server" ID="write_Img"

ImageUrl="~/images/btn/imgdown.gif" Style="cursor: pointer;" /></div>

</div>

<asp:Panel runat="server" ID="write_Header2">

<table id="t_write" border="0" cellpadding="0" cellspacing="0" class="table">

<tr>

<td class="td_img" rowspan="3">

<div id="imgAdd">

</div>

<div id="Div_img" class="div_img" runat="server">

이미지삽입 클릭!^^

</div>

</td>

</tr>

<tr style="height: 50px;">

<td class="td_txt">

&nbsp;닉네임</td>

<td class="td_Box">

<asp:TextBox runat="server" ID="txtuserName" TextMode="SingleLine"

CssClass="Userinfo" MaxLength="12"></asp:TextBox></td>

<td class="td_txt">

비밀번호</td>

<td class="td_Box">

<asp:TextBox runat="server" ID="txtpassword" TextMode="password" CssClass="Userinfo"

MaxLength="12"></asp:TextBox></td>

</tr>

<tr style="height: 150px;">

<td colspan="4" style="padding: 5px;">

<table border="0" cellpadding="0" cellspacing="0" style="width: 100%; height: 100%;">

<tr>

<td style="width: 80%;">

<asp:TextBox runat="server" TextMode="MultiLine" ID="txtContent"

CssClass="txtContent"></asp:TextBox>

</td>

<td style="width: 20%; padding: 2px;">

<img alt="" src="images/Ok.gif" style="cursor: pointer" onclick="write_Ok()" />

</td>

</tr>

</table>

</td>

</tr>

</table>

</asp:Panel>

<cc1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" runat="server"

TargetControlID="write_Header2" ExpandControlID="write_Img"

CollapseControlID="write_Img" ImageControlID="write_Img"

ExpandedImage="~/images/btn/imgUp.gif" CollapsedImage="~/images/btn/imgdown.gif">

</cc1:CollapsiblePanelExtender>

<%--########################### 방명록 글쓰기 끝 ####################### --%>

</ContentTemplate>

</asp:UpdatePanel>

위 코드가 아래의 그림처럼 보여지게 되겠지요!


사용자 삽입 이미지


음.. 코드가 좀 길네요! 근데 기본적인 HTML코드를 아시는 분들은 이해하시리라 생각 됩니다. 저는 여기서 주요 요소만 설명해드리겠습니다. 먼저 한눈에 딱 들어오는 코드가 있죠! CollapsiblePanelExtender 컨트롤!! 컨트롤 앞에 cc1: 가 붙은 이유는 젤위에 코드에 아래와 같은 코드가 있기때문이죠.

 Register(.aspx페이지)

 <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

TagPrefix="cc1" %>

 마치 ASP.NET server 컨트롤과 비슷하게 사용되지 않습니까 <asp:TextBox....> 비슷하죠!!TagPrefix 부분에 자신이 사용한 원하는 이름으로 바꾸셔도 상관없습니다. test로 바꾸시면<test:CollapsiblePanelExtender로 쓰시면 되겠죠^^!아무튼 CollapsiblePanelExtender 컨트롤이 모하는 컨트롤이냐면요!! 스토리보트에서 보면 글쓰는 부분이 닫혔잖아요!!그걸 가능하게 해주는 컨트롤 입니다. 기존에는 자바스크립트로 어렵게 만들어야 했지만 이컨트롤을 이용하면 아주 쉽게 해결이 됩니다. 속성은 아래표와 같습니다.
 

 TargetControlID  확장하거나 축소하는 동작을 실행할 Panel 컨트롤 ID 입니다.
 CollapsedSize  축소된 상태일 때의 대상 컨트롤의 사이즈로써, 픽셀 단위로 지정합니다.
 ExpandedSize  확장된 상태일 때의 대상 컨트롤의 사이즈로써, 픽셀 단위로 지정합니다.
 Collapsed  처음 컨트롤이 로딩될 때 축소된 상태 또는 확장된 상태로 화면에 보이게 할 것인지를 정의합니다. (bool형 지정)
 AutoCollapse  대상 컨트롤인 Panel에서 마우스를 벗어나게 했을 경우 자동적으로 축소시킬 것인지를 정의합니다(bool형 지정)
 AutoExpand

 대상 컨트롤인 Panel에 마우스를 올렸을 경우 자동적으로 확장시킬 것인지를 정의합니다.

(bool형 지정)

 ScrollContents

 컨텐츠(내용)가 패널 자신보다 더 클 경우 스크롤바를 보이게 할 것인지를 정의합니다.

(bool형 지정)

 ExpandControlID /
 CollapseControlID
 확장되거나 축소하게 하는 클릭 이벤트를 줄 컨트롤 ID을 정의합니다.
 TextLabelID  Panel 컨트롤이 위치된 곳에서 보여줄 "상태 글자(status text)"를 나타내는 Label 컨트롤의 ID를 정의합니다.
 CollapsedText  Panel 컨트롤이 축소되었을 때 TextLabelID에 의해 정의된 컨트롤에서 보여지는 글자를 정의합니다.
 ExpandedText  Panel 컨트롤이 확장되었을 때 TextLabelID에 의해 정의된 컨트롤에서 보여지는 글자를 정의합니다.
 ImageControlID  Panel 컨트롤이 위치된 곳에서 축소된 상태를 가리키는 Image 컨트롤의 ID를 정의합니다.
 CollapsedImage  Panel 컨트롤이 축소되었을 때ImageControlID에 의해 사용되는 이미지의 경로를 지정합니다.
 ExpandedImage  Panel 컨트롤이 확장되었을 때ImageControlID에 의해 사용되는 이미지의 경로를 지정합니다.
 ExpandDirection  Panel 컨트롤이 상하 또는 좌우로 확장될 것인지에 대한 "Vertical"이나 "Horizontal"을 지정합니다.

위 속성을 보시면 제가 설정한 속성을 한번에 알수 있을 것 입니다.

CollapsiblePanelExtender (.aspx 페이지)

 <cc1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" runat="server"

TargetControlID="write_Header2" ExpandControlID="write_Img"

CollapseControlID="write_Img" ImageControlID="write_Img"

ExpandedImage="~/images/btn/imgUp.gif" CollapsedImage="~/images/btn/imgdown.gif">

</cc1:CollapsiblePanelExtender>


아주 간단하지 않습니까^^ 초보인 저도 이렇게 가능합니다~!
이번 내용은 여기까지 다루도록 하고요 다음 편에서는 이미지 모음이 어떻게 나타나는지 알아 보도록 하겠습니다!!
 

Posted by happydong
, |



AJAX 방명록 만들기[2]


이제 Ajax 방명록이 어떻게 만들어 졌는지 하나하나 보도록 하겠습니다!! 항상 말하지만 저또한 .NET 초보자니깐요!! 잘못된 부분이나 부족한부분 알려 주세요~! 근데 사람들이 보기는 할까 의문입니다ㅋ 제일 먼저 Visual Studio를 실행해야 겠죠!^^ 아~! 그리고 AJAX 방명록을 만드시려면 몇가지 갖추어야 할 사항이 있습니다.

 ㅁ ASP.NET Extensions 를 설치를 해야 합니다.

 ㅁ ASP.NET Ajax controlToolkit 참조해야 합니다.

(다운로드 받을수 있는 곳입니다. http://www.asp.net/ajax/downloads/ 가시면 ControlToolkit과 ASP.NET Extensions v1.0버전을 다운로드 할수 있습니다! 설치 방법도 간단 합니다.실행후 다음다음...아시죠!^^)
ASP.NET Extensions는 .NET Framework 2.0 이상에서 지원이 된다고 합니다. 고로 Visual Studio2005로 AJAX방명록을 만들어야 겠죠!^^
VS2005를 실행하시면 상단 메뉴에 파일  >> 새로만들기 >> 웹사이트 클릭하시면 아래와 같은 그림이 나타 납니다.

 

사용자 삽입 이미지


그리고 ASP.NET Extensions 설치했다면 AJAXEnabledWebSite 템플릿이 보일 것입니다. 그걸 선택을 하고 프로잭트 이름을 주면 되는 거죠! 저는 "guest_board"라고 해봤습니다! 자 이제 프로젝트가 실행이 되었겠죠!! 그럼 이제 Ajax controlToolkit dll를 참조해야합니다.


사용자 삽입 이미지


프로제트에서 오른쪽 마우스를 클릭하면 위 그림과 같이 메뉴가 나타나는데요!! 참조추가는 클릭하면 아래와 같은화면이 나타나는데요!!거기서 찾아보기 텝을 선택하신다음에 다운로드 하신 Ajax controlToolkit dll 파일을 찾아서참조해주세요!!

사용자 삽입 이미지


자 참조 추가도 했습니다!!  이제 저와 같이 파일을 추가해볼까요!!


사용자 삽입 이미지


아마 기본적으로 Default.aspx 페이지가 있을 텐데요!! 저는 그냥 MasterPage를 만들어 보았습니다. 혹시 나중을 위해서요!!저 같이 마스터페이지를 만드실거면 처음에 생성된 Default페이지는 그냥 지워 버리세요!! 지우지 않으셔도 되긴 하지만...안에 코드를 조금 바꿔야 하거든요! 그냥 지우고 만드는 좋을것 같아서요!! 그럼 아까 처럼 프로젝트에 마우스 오른쪽클릭하면 "새 항목 추가"가 있습니다. 그걸 클릭하면 여러가지 템플릿들이 나오는데요!! 거기서 마스터 페이지를 선택하세요!! 그럼 마스터 페이지만 생길거예요!! 그 다음에 MasterPage.master 파일이 생기죠 거기에서 다시 마우스 오른쪽 클릭하면 또 여러가지 메뉴가 나타나는데요!! 거기서 콘텐트 페이지 추가를 선택하세요. 그럼 .aspx페이지가 생성됩니다. 그럼 이름을 바꾸시면 됩니다. 저는 "Guest_Board.aspx" 라고 했습니다. 지금까지 이해 안되시는 부분 없으셨죠~^^ 그 다음에 위 그림과 같이 .js파일, .css파일, images폴더, boardClass.cs, dbClass.cs 를 생성합니다. 이 파일역활을 갈약하게 설명하자면 아래 같습니다.

   - boardClass.cs : 글쓴 내용을 받아서 프로시져의 Parameter를 생성하는 역활을 합니다.

      (왜 이렇게 코드를 짯을까...그냥 이렇게 해보고 싶었어요!!)

   - dbClass.cs : 데이터 베이스에 연결하고 쿼리를 실행하는 역활을 합니다.

   - js파일 : 유효성 체크하기 위함

   - css파일 : style를 적용하려고요!!(근데...짜다보니깐 별로 안쓰더라고요!제가 아직 미흡해서 그런 것 같아요!!)

아무튼 저는 이렇게 파일을 생성했습니다~^^ 이제 여기끼지 준비가 되었다면 이제 다음 강좌에서 글쓰는 부분을 만들어 보도록 하겠습니다!! 빨리빨리 만들어야하는데...짜꾸 이렇게 말만 많았네요!! 저같은 초보자들을 위해서 하나하나 차근차근 집고 넘어가기 위해서 입니다. 그러니 양해해주세요!^^

Posted by happydong
, |



AJAX 방명록 만들기[1]


저는 닷넷을 시작한지 얼마되지 않은 초보자 입니다. 제가 알고 있는 내용을 바탕으로 Ajax 방명록을 만들어 보았습니다!! 혹시 이글을 읽는 분이 있다면 혹시 잘못된 부분이나 부족한 부분들 딱끔하게 지적해주세요!! 그리고 저같은 초보자들에게 조금이나마 공부하는데 도움이 되었으면 좋겠습니다^^

자~ 그럼 한번 제가 만든 Ajax방명록을 소개 하도록 하겠습니다.  소개후 차근차근 하나하나 어떻게 만들었는지알려 드리도록 하겠습니다~^^자 그럼 시작해 볼까요!^^
방명록이라고 하면 우리가 예상할 수 있듯이 글쓰는 곳과 리스트부분이 같은 페이지에 있는 것을 예상할수 있을것입니다!!맞습니다. 제가 만들 방명록도 그러한 페이지 입니다. 하지만 조금 다른 점이있다면 ASP.NET AJAX를이용해서 페이지 깜빡이지 않고 데이터를 처리한다는 것이 조금 다르다고 할 수있겠네요!!^^

그럼 제가 만든 AJAX 방명록 스토리 보드를 보시겠습니다~^^

1. 방명록 전체 페이지 입니다!!

사용자 삽입 이미지

별거 없죠!^^ 제가 나름데로 디자인도 해보았는데...쉽지 않더라고요!! 아직 DB에 글이 없기 때문에 List에 나타나지 않았습니다.여기서 사용자가 글쓰는 부분을 닫고 싶다고 하면..."Dong wook 방명록 남겨주세요~^^" 옆에 화살표 를 클릭하면 글쓰는 부분이 닫히게 됩니다.

2. 글쓰는 부분 닫힌 모습.

 

사용자 삽입 이미지

말로 설명하는 것 보다 눈으로 보는게 더 좋겠죠!!^^

3.이미지 삽입

사용자 삽입 이미지


저는 방명록에 사용자가 이미지를 선택해서 입력할수 있도록 했습니다!!위 그림과 같이 글 쓰는 부분왼쪽에 보시면 "이미지 삽입 클릭!^^"이라는 내용이 있습니다! 그 부분을 클릭하면 위 그림과 같이 이미지를 선택할 수 있도록메뉴가 나타나게 됩니다!

4.글쓰기

 

사용자 삽입 이미지


위 그림은 첫번째 글쓰고 리스트에 보여지게 하고 두번째 글을 쓰고 있는 그림입니다!!당연히 글을 쓰면 DB에 들어가고 리스트에 보여줘야 하겠죠!!하지만 페이지는 저녀 깜빡이지 안고 리스트에 보여진다는거....나중에 코드부분에서 설명하겠습니다~!!


5. 글 삭제하기

사용자 삽입 이미지

리스트 부분에 휴지통 이미지를 클릭하면 비밀번호를 입력 할수 있는 부분이 나타납니다. TextBox에 비밀번호를입력하면 글이 삭제가 됩니다. 정상적인 비밀번호를 입력하시면 삭제가 이루어지고 "정상적으로 삭제 했습니다!"라는 메세지가 나오겠고...잘못 입력하셨다면...메세지는 "비밀번호가 잘못되었습니다"이런 식으로 메세지가 나오겠죠!^^ 자 지금까지 제가 만든 Ajax 방명록 스토리 보드는 간단하게 보았습니다!!
그럼 다음 강좌부터는 어떻게 만들어 졌는지 하나하나 보도록 하겠습니다.
제가 쓰는 글은 거의 초보자 수준이니 많이 이해해 주세요~

Posted by happydong
, |