2013-04-17 1 views
1
아래

내 코드입니다 :비주얼 웹 개발자 HTML 버튼의 onclick 이벤트가 발생하지 않았다

의 default.aspx :

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" 
    AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
    Inherits="TestAjax._Default" %>  

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
</asp:Content> 

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 

    //I set an onClick event on this button: 

    < input type = "button" id="btnCl" onclick = "doJob" /> 

</asp:Content> 

하여 default.aspx.cs :

protected void Page_Load(object sender, EventArgs e) 
{ 
    //fires on page load; 
} 

void doJob() 
{ 
    //code here; 
} 

질문은 :

왜 onclick 이벤트가 트리거되지 않았습니까?

그 덕분 input 요소

+0

''을 사용하여 서버 측 이벤트를 얻을 수 있습니다. – Belogix

답변

0

dojob() 서버 측 기능이므로 있지만 onclick (Default.aspx를 btnCL)에 클라이언트 측 이벤트이다. dojob()이 정의되지 않은 함수라는 JavaScript 콘솔에서 오류가 발생했을 수 있습니다.

서버 측 클릭 이벤트를 사용하려면 input 대신 asp:Button을 사용하십시오. 또한 dojob()protected이어야합니다. 보호 수준을 선언하지 않음으로써 기본값이 private이라고 생각하여 페이지 컨트롤이 페이지를 볼 수 없을 수도 있습니다. 그것은 버튼을 클릭에 대한 이벤트 핸들러를 일치해야합니다 :

protected void dojob(Object sender, EventArgs e) 
{ 

} 
+0

그래서 onclick 이벤트는 어떻게 사용합니까? – User2012384

+1

@ user2191496 : 무슨 소리 야? 페이지를 서버에 다시 게시해야하는 서버 측 이벤트 또는 현재 수행하려는 클라이언트 측 이벤트를 사용 하시겠습니까? 당신이하려고하는 것이 명확하지 않으므로 그것을하는 방법에 대한 명확한 답이 없습니다. – David

+2

나는 그가 서버 사이드 콜을하고 싶어한다고 생각하고있다. 방법을 보여주는 답변을 추가했습니다. 그가 서버 측을 원한다고 생각하는 이유는 그가 호출하려고하는 코드가 JavaScript가 아닌 C# 코드 숨김 파일에 있기 때문입니다. – Belogix

1

을 당신은이 같은 asp:Button 제어 사용해야 :

protected void Button1_Click(object sender, EventArgs e) 
{ 
    // your code here 
} 
:이 같은 이벤트 메소드가 다음

<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 

일반 input 태그를 사용하는 경우 onclick은 자바 스크립트 용이므로 ASP.NET 컨트롤 asp:Button을 사용해야합니다. C# 방법.

1

OP에서 내 의견에 언급했듯이 현재 메서드는 doJob이라는 JavaScript 함수를 찾고 있으므로 클라이언트 측 호출을 수행하고 있으므로 서버 측 호출을 만들어야 컨트롤을 사용해야합니다. 의이 달성 할 수있는 방법 :

웹 페이지 (에서 .aspx)

<asp:Button ID="btnDoJob" Runat="server" Text="Do Job" OnClick="btnDoJob_Click" /> 

코드 숨김 (.CS)

0123을
관련 문제