2011-05-09 62 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
如果你发现答案是有用的,请花几秒钟来评价它