[英]Calling ASP.NET Code Behind function from JavaScript
是否可以从JavaScript调用ASP.NET代码隐藏函数。
是的,你可以使网络方法像..
<WebMethod(EnableSession:=True), ScriptMethod()> _
Public Shared Function updateContent() As String
Return "Your String"
End Function
然后在javascript中调用..
PageMethods.updateTabContent(parameterValueIfAny, onSuccessMethod,onFailMethod);
这也需要补充
<asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
我更喜欢Muhammad Akhtar PageMethod方法。 只需简短说明:您不需要脚本管理器。 scriptmanager只为您生成javascript代理方法。 如果您的页面上已经有了JQuery,那么您可以忘记脚本管理器并在页面上写下这样的内容:
<script type ="text/javascript">
$(document).ready(function() {
$("#AjaxLink").click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "YourPage.aspx/updateContent",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
$("#content").html(result.d);
}
});
});
});
</script>
这假设您在页面上有ID AjaxLink的链接以及带有显示结果的id内容的div。 好处是你可以通过scriptmanager比较jquery和注入脚本之间的30kb javascript
[System.Web.Services.WebMethod]
public static string set_single_amount(arg a1)
{
return value;
}
$("#control").click(function()
{
PageMethods.set_single_amount(value,afercalling)
});
function afercalling(result)
{
alert(result);
}
不,不可能直接从Javascript调用ASP.NET代码函数。 ASP.NET代码隐藏在ASP.NET工作进程的上下文中在服务器上执行。 Javascript在客户端浏览器的上下文中在客户端上执行。
Javascript可以触发执行ASP.NET代码的唯一方法是通过从Javascript到服务器进行AJAX调用。
您可以使用__doPostBack
从javascript进行回发。 只需添加一个具有AutoPostBack属性的服务器控件并将其设置为true。
如果您正在处理非Ajax项目,则可以尝试System.Web.UI.ICallbackEventHandler。
样品在这里:
http://msdn.microsoft.com/en-us/library/ms178210.aspx
http://www.ajaxmatters.com/2006/05/using-icallbackeventhandler-in-asp-net/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.