<script language="javascript">
function init()
{
alert('hello ');
<%SetData();%>; //------------------------------> main line
alert('<%=strName%>');
}
</script>
-------------------------------------------------------
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
this.ImageButton1.Attributes.Add("onclick",
"javascript:init();");
}
}
public void SetData()
{
strName = "mainpico";
}
===========================
1. 디자인 모드에서 클라이언트 히든버튼을 만듬
<input type="hidden" id="hidden0" runat="server" style="width: 32px" />
2. 특정버튼을 클릭할 때 자바스크립트 함수를 호출하도록 설정
<asp:ImageButton ID="ImgBtn0" runat="server" ImageUrl="~/3_MeChul/images/달력.gif" OnClientClick="send()" />
3. 자바스크립트에서는 전달하고 하는 변수값은 1번에서 생성한 input type='hidden'에 넣어줌
<script type="text/javascript">
function send() {
var getX = event.clientX;
var getY = event.clientY;
document.getElementById("<퍼센트= hidden0.ClientID 퍼센트>").value = getX;
document.getElementById("<퍼센트= hidden1.ClientID 퍼센트>").value = getY;
}
</script>
4. 자바스크립트에서 받아온 변수값을 화면에 출력해주도록 하자.
Protected Sub ImgBtn0_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImgBtn0.Click
Label3.Text = hidden0.Value.ToString()
Label4.Text = hidden1.Value.ToString()
End Sub
5. 값이 잘 전달되는지 확인해보자.
이미지 버튼을 클릭하면 클라이언트의 마우스 x,y 좌표값이 화면에 출력되도록 하자.
↑히든버튼 ↑히든버튼
아래 화면의 구현은
1. 버튼 클릭 -> 자바스크립트 함수 실행
2. 자바스크립트 변수를 히든버튼에 입력
3. vs2005 툴에서 히든버튼의 value값을 받아서 Label3/4 에 뿌려줌
[출처] 자바스크립트의 변수를 asp.net 으로 가져오기 (변수공유)|작성자 지니진
자바스크립에서를 __doPostBack 으로 서버이벤트 호출하기 | 닷넷해볼까?
2006.02.21 12:07
대박재열(gold0073)
http://cafe.naver.com/dotnetscript/58 <INPUT id="cafeurlstr" type="hidden" value="http://cafe.naver.com/dotnetscript/58" name="cafeurlstr">
!------------스크립트------------------
<script language="javascript">
function CreateTest()
{
alert("스크립트 호출 테스트입니다");
__doPostBack('CreateTest','')
}
</script>
!-----------HTML----------------------
<form id="Form1" method="post" runat="server">
<a href="javascript:CreateTest();">스크립트호출</a>
<asp: LinkButton ID="CreateTest" runat="server" Onclick="CreateTest_Click" Visible="false" />
...
...
...
<input type="hidden" name="__EVENTTARGET">
<input type="hidden" name="__EVENTARGUMENT">
<script language="javascript">
function __doPostBack(eventTarget, eventArgument)
{
//doPostBack을 일으키기 위해 꼭 필요하다
var theform = document.Form1;
theform.__EVENTTARGET.value = eventTarget;
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
</script>
</form>
!-----------코드비하인드----------------
Protected void CreateTest_Click(object sender,EventArgs e)
{
Response.Write("호출하였습니다");
}