ASP.NET中JavaScript 調用後台代碼,asp.netjavascript
前序:在不需要右擊頁面或回傳的情況下重新整理頁面,即JS調用後台代碼;
方法一:調用隱藏服務端按鈕的點擊事件
1、在前端放一個隱藏按鈕,將需要調用的後台代碼寫入OnClick事件中;
2、在前台寫一個js函數,函數體為document.getElementById("<%=btnID.ClientID%>").click();
3、在需要重新整理的地方調用js函數,即可調用按鈕OnClick事件;
4、此方法適用無返回值;
方法二:JS中直接用<%=MethodName()%>調用
1、在後台寫好方法,public或是protected;
2、在前台寫一個js函數,函數體為var result = "<%=MethodName()%>" 或是 直接 eval("<%=MethodName()%>");
3、在需要重新整理的地方調用js函數,即可調用後台方法;
4、此方法適用帶返回值;
方法三:利用PageMethod調用
PageMethod方法介紹:
PageMethods.FunctionName(Paramter1,Parameter2,...,SuccessMethod, FailedMethod, userContext);
其中,前面Paramter1,Parameter2,...,表示的是FunctionName的參數,類型是Object或Array;
SuccessMethod是需要使用後台返回結果的Js方法,
FailedMethod是當背景csFunctionName方法發生異常情況下的執行的Js方法(容錯處理方法),
userContext是可以傳遞給SuccessMethod方法,或是FailedMethod方法的任意內容。
實現方法三按照以下步驟:
1.後台方法必須是public static 的,
方法頭部上加上[System.Web.Services.WebMethod],來標註特性。
2.在前台頁面加入ScriptManager控制項,並把其EnablePageMethods屬性設為true。
3.調用PageMethods,這裡只是最簡單調用。
PageMethods.FunctionName(回調的js方法);
//其中FunctionName為後台建立的靜態方法名,回調js方法為前台接受結果的方法。
PageMethods例子:
後台代碼:
一.無參數方法
[System.Web.Services.WebMethod]public static string ShowValue()//可加上參數{return "HelloWord= =C#";}
前端代碼:
<script type="text/javascript"> function bclick(){PageMethods.ShowValue(HelloWord);//調用有參數方法PageMethods.ShowValue(‘123’ , HelloWord);}function HelloWord(result) //回調方法接受後台代碼的執行結果{alert(result);}//調用後台有參數方法 function bclick2(){var text = "test";PageMethods.ShowValue2(text,sshow2);}</script>
方法四:JQuery Ajax 非同步呼叫
百度一大堆