2011. 5. 12. 03:04

자바스크립에서 비하인드로 값을 넘기기는 손이 많이 갈수 밖에 없는 작업입니다.
자바스크립과 비하인드는 실행하는 위치가 다르니까 말이저 ㅎㅎ
그래서 많은 방법이 있저
그중 그나마 간단해 보이는 방법을 소개 하게해보겠습니다.

예제는 ASP.net지만 어떤 언어에서도 다 가능한 방법입니다.


 
1.Asp.net 컨트롤인 HiddenField와 html컨트롤 hidden
HiddenField와 hidden의 사용법은 사실상 같다. 둘다 화면에 표시되지 않으 면서 동작하는 컨트롤입니다.

html 소스 보기에서

<asp:HiddenField ID="HiddenField1" runat="server" />
<input id="Hidden1" type="hidden" runat="server" />

를 추가 합니다.
위에꺼는 하이든필드고 아래꺼는 인풋 하이든입니다.
비하인드에서 값을 받아오려면 runat속성이 server로 되있어야 합니다.(안그러면 비하인드에서 읽을 수가 없습니다.)

이제 자바스크립트를 이용해 값을 설정하면 비하인드에서 값을 읽을수 있게 됩니다.
document.frmQuestion.HiddenField1.value
document.frmQuestion.hidden.value


 
2.자바스크립호출후 비하인드코드 호출하기
그런데 일반적으로 버튼을 통해 자바스크립트를 호출한후 비하인드코드를 호출하여 하이든의 값을 읽어야 합니다.
이 처리를 하는 방법도 여러가지 이지만 2.0으로 넘어오면서 편해 졌다고 합니다.
 
버튼에 OnClientClick속성으로 자바스크립을 호출하고 onclick속성으로 비하인드코드를 호출 할 수 있습니다.

<asp:Button ID="butIntup" runat="server" Text="입력" OnClientClick="ST();" onclick="butIntup_Click"  />

호출순서는 OnClientClick후 onclick이기 때문에 별도의 처리 없이 원하는 데로 코드가 동작합니다.


 
3.자바스크립트에서 비하인드 코드 호출하기
2번의 방법을 응용하여 자바스크립트에서 비하인드코드를 호출할수 있습니다.

이미지 버튼을 하나를 만들고 안보이게한후 자바스크립트로 클릭을 하면 되저.

<asp:ImageButton ID="ImageButton1" Width="0" Height="0" runat="server" onclick="butIntup_Click" />


이렇게 하면 안보이는 버튼을 만들수 있습니다.
이제 자바스크립트로 ImageButton1를 호출하면 되저


document.getElementByid("butIntup_Click").click();

이렇게 하면 자바스크립트로 비하인드 코드를 호출할수 있습니다.

댓글 작성

이름
패스워드
홈페이지
비밀글