2011-05-09 5 views
2

파일 업로드 버튼이있는 webform이 있습니다.asp.net jquery newbie question

버튼을 클릭하여 파일을 업로드 할 때 C# 코드 뒤에 jquery를 실행하기 전에 첫 번째을 실행하려는 이벤트 처리기의 일부 코드가 들어 있습니다.

<script> 
    $(document.ready() { 
     $('.uploadButton').click(function() { 
      // do some additional processing *AFTER* code behind stuff executes 
     }); 
    } 
</script> 

// In my ASP.NET C# code behind 
protected void uploadButton_Click(object sender, EventArgs e) 
{ 
    // Code to fire off here *FIRST* before jquery executes 
} 

이렇게 할 수 있나요? 자바 스크립트에서 jquery 게시물을 구현할 수 있다는 것을 알고 있지만 대부분의 코드가 이미 레이아웃되어 있으므로 (클라이언트 요청에서이 코드를 변경하고 있기 때문에)이 같은 것이 가능한지 궁금합니다.

답변

0

그것은 불가능

OnClick 및 jQuery를 이벤트 핸들러는 최초이자 유일한 후 페이지를 다시 게시하고 당신이 당신의 서버에서 코드를 실행할 수 있는지 실행됩니다. 당신이 할 수있는

가장 좋은 것은 당신을 도움이되는 몇 가지 코드의 $.ajax

사용하는 것입니다.

$(".uploadButton").click(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "PageName.aspx/uploadButton_Click", 
     data: "{'Name':'Mr.X'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      alert(msg.d) // will show up an alert box with Good bye world by Mr.X 
     } 
     }); 
}); 
0

아약스

[WebMethod] 
public static string uploadButton_Click(string name) 
{ 
    return "Good bye World! by" + name ; 
} 

뒤에 그리고 JS 파일의 코드에서

가 선택할 수있는 최선의 방법입니다. Wannna가 AJAX를 사용하지 않는다면, 아마 이것 (아마도 더러운 논리)을 수행 할 수 있습니다.

서버에 충돌하기 전에 jQuery를 사용하지 마십시오. 당신의 코드 숨김에서

// In my ASP.NET C# code behind 
protected void uploadButton_Click(object sender, EventArgs e) 
{ 
    // Code to fire off here *FIRST* before jquery executes 

    string strClientQuery = @"<script type="javascript"> $(document.ready() { 
     $('.uploadButton').click(function() { 
     // do some additional processing *AFTER* code behind stuff executes 
     }); 
     } </script>"; 
    Response.Write(strClientQuery); 
} 

클라이언트 측 (즉, aspx 페이지), 다음 영문의 문자열로 쿼리를 작성하고 페이지에 입력으로 전달에 엄격 스크립트를 유지하려면

(통해 _EventTarget 및 코드 숨김에서 문자열을 가져 와서 response.write를 수행하십시오.
answser가 유용하다고 생각되면 잠깐 시간을내어