JavaScript with ASP.NET 2.0 Pages
DotNet/asp.net 2008/04/17 15:44 |
출처 : http://dotnetslackers.com/articles/aspnet/JavaScript_with_ASP_NET_2_0_Pages_Part1.aspx
asp.net2.0 에서는 클라언트사이드에서 필요한 자바스크립관련 유용한 기능들이 몇가지 추가되었다.
그래서 Page.RegisterStartupScript 를 써야 했던 노가다를 좀 줄여준다.
1. 특정컨트롤에 포커스 주기
2. 메세지박스 띄우기
3. 포스트 백 후에도 같은 스크롤위치 고정시키기
4. 동적으로 스크립트 페이지에 추가하기
5. 페이지 초기 로드시 실행할 스크립트의 추가
6. Embedding JavaScript in Resources
이부분은 별 필요성을 못느껴서 생략....
참고링크 :http://aspnet.4guysfromrolla.com/articles/080906-1.aspx
asp.net2.0 에서는 클라언트사이드에서 필요한 자바스크립관련 유용한 기능들이 몇가지 추가되었다.
그래서 Page.RegisterStartupScript 를 써야 했던 노가다를 좀 줄여준다.
1. 특정컨트롤에 포커스 주기
Page.SetFocus(control);
로 페이지 객체의 매소드를 호출하거나
Textbox1.Focus();
위와 같이 웹컨트롤 내부의 함수를 호출해도 된다.
또한 form 에 DefaultFocus 라는 속성이 추가 되어서 폼이 로드시 기본 포커스를 지정할 수 있다.
아래 코드처럼 하면 textbox2 에 포커스가 간다.
<form defaultfocus="textbox2" runat="server">
<asp:textbox id="textbox1" runat="server"/>
<asp:textbox id="textbox2" runat="server"/>
</form>
로 페이지 객체의 매소드를 호출하거나
Textbox1.Focus();
위와 같이 웹컨트롤 내부의 함수를 호출해도 된다.
또한 form 에 DefaultFocus 라는 속성이 추가 되어서 폼이 로드시 기본 포커스를 지정할 수 있다.
아래 코드처럼 하면 textbox2 에 포커스가 간다.
<form defaultfocus="textbox2" runat="server">
<asp:textbox id="textbox1" runat="server"/>
<asp:textbox id="textbox2" runat="server"/>
</form>
2. 메세지박스 띄우기
'삭제 하시겠습니까?' 라는 comfirm 메세지를 띄우고 '예'를 클릭하는 경우만 포스트 백이 일어나게 하는 경우 전에는 주로 Attribute 에 onclick 이벤트를 넣어 처리했지만, 버튼 컨트롤에 있는 onClientClick 을 이용해서 처리할 수 있다는 내용
3. 포스트 백 후에도 같은 스크롤위치 고정시키기
지랄스럽게도 포스트백이 되버리면 페이지가 리로드 되는 것처럼 스크롤 포지션을 잃어버린다.
asp.net2.0 에서는 무지하게 쉽게 스크롤 위치를 유지해준다.
<%@ Page ... MaintainScrollPositionOnPostback="true" %>
asp.net2.0 에서는 무지하게 쉽게 스크롤 위치를 유지해준다.
<%@ Page ... MaintainScrollPositionOnPostback="true" %>
4. 동적으로 스크립트 페이지에 추가하기
특정이벤트가 발생햇을 경우 실행할 스크립트를 추가하는 경우이다.
이런 경우 ClientScript.RegisterClientScriptBlock 을 사용한다.
이런 경우 ClientScript.RegisterClientScriptBlock 을 사용한다.
<script runat="server"> protected void btnPopUp_Click(object sender, EventArgs e) { //Build a Pop Up JavaScript //please note the peculiar '/script' in the last line of the script string //This is to work around the problem that compiler would mistake the //closing script tag as the outer script closing tag. //For details, please see //http://support.microsoft.com/default.aspx?scid=kb;EN-US;827420 System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("<script language='javascript'>"); sb.Append("window.open('javascript.htm', 'CustomPopUp',"); sb.Append("'width=200, height=200, menubar=yes, resizable=no');<"); sb.Append("/script>"); //register with ClientScript //The RegisterStartupScript method is also slightly different //from ASP.NET 1.x Type t = this.GetType(); if (!ClientScript.IsClientScriptBlockRegistered(t, "PopupScript")) ClientScript.RegisterClientScriptBlock(t,"PopupScript", sb.ToString()); } </script> <form id="form2" runat="server"> <asp:Button ID="btnPopUp" runat="server" Text="PopUp" OnClick="btnPopUp_Click" /> </form>
5. 페이지 초기 로드시 실행할 스크립트의 추가
ClientScript.RegisterStartupScript 를 사용하면 된다.
6. Embedding JavaScript in Resources
이부분은 별 필요성을 못느껴서 생략....
참고링크 :http://aspnet.4guysfromrolla.com/articles/080906-1.aspx
'DotNet > asp.net' 카테고리의 다른 글
| Delayed Content Loading Using the AJAX.NET Timer and UpdatePanel (0) | 2008/05/08 |
|---|---|
| updatepanel 스크립트로 업데이트 하기 (0) | 2008/05/08 |
| JavaScript with ASP.NET 2.0 Pages (0) | 2008/04/17 |
| Asp.net 의 Validator , 스크립트로 호출하기 (0) | 2008/04/17 |
| 쿠키는 어디에 존재할까? (3) | 2008/03/25 |
| Flash 진행바를 사용한 asp.net 멀티파일 업로드 (2) | 2008/02/18 |
이올린에 북마크하기
이올린에 추천하기

댓글을 달아 주세요