2011-05-09 70 views
2

我有一個包含文件上傳按鈕的網絡表單。asp.net jquery newbie問題

當我點擊按鈕上傳文件時,後面的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 
} 

是這樣的可能嗎?我知道我可以在我的javascript中實現一個jQuery文章,但由於我已經佈置了大部分代碼(並且正在對客戶端請求進行更改),所以我只是想知道是否可以這樣做。

回答

0

這是不可能

OnClick和jQuery事件處理第一個也是唯一的頁回,你就能夠在你的服務器上運行的代碼之後執行。

,你能做的最好的事情就是用$.ajax

這裏的一些代碼,以幫助您。

在後面的代碼

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

而在js文件

$(".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

Ajax是選擇最好的選擇。如果你不想使用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頁面),然後創建查詢作爲ASPX字符串,並將其傳遞作爲輸入到網頁嚴格遵守腳本(通過_EventTarget和代碼隱藏得到的字符串,並做response.write
如果你發現答案是有用的,請花幾秒鐘來評價它