javascript函數中執行C#代碼中的函數:
方法一:1、首先建立一個按鈕,在后台將調用或處理的內容寫入button_click中;
2、在前台寫一個js函數,內容為document.getElementById("btn1").click();
3、在前台或后台調用js函數,激發click事件,等於訪問后台c#函數;
方法二:1、函數聲明為public
后台代碼(把public改成protected也可以)
無參數
1 public string methodname() //注意該方法不能為void,否則執行會報錯 2 { 3 4 //在這之前可以做任何一些服務端的操作,可以不把返回值作為目的,而是要執行一些服務端的代碼。 5 return ""; 6 }
有參數
1 protected string CsharpVoid(string strCC) 2 { 3 strCC = "你好!" + strCC; 4 return strCC; 5 }
2、在html里用<%=fucntion()%>可以調用
前台腳本
無參數
<script language=javascript> var a = "<%=methodname()%>"; alert(a); //如果只是要執行服務端的一些代碼也可以寫為如下,這樣就可以執行服務端代碼了 eval("<%=methodname()%>"); </script>
有參數
1 function Init() 2 2 { 3 3 var v = "中國"; 4 4 var s = '<%=CsharpVoid("'+v+'") %>'; 5 5 alert(s); 6 6 }
方法三:
利用PageMethods調用后台代碼
PageMethod方法介紹:
PageMethods.FunctionName(Paramter1,Parameter2,...,SuccessMethod, FailedMethod, userContext);
其中,前面Paramter1,Parameter2,...,表示的是FunctionName的參數,類型是Object或Array;
SuccessMethod是需要使用后台返回結果的Js方法,
FailedMethod是當后台的csFunctionName方法發生異常情況下的執行的Js方法(容錯處理方法),
userContext是可以傳遞給SuccessMethod方法,或是FailedMethod方法的任意內容。
實現方法三按照以下步驟:
1.在后台創建方法,必須是static(靜態的),方法必須是public類型的,否則訪問不到會報異常,
接着要在該方法頭部上加上[System.Web.Services.WebMethod],來標注方法特性。
2.在前台頁面加入ScriptManager控件,並把其EnablePageMethods屬性設為true。
3.調用PageMethods,由於該方法有很多重載,現在只說最簡單的實現。
PageMethods.FunctionName(回調的js方法); //其中FunctionName為后台創建的靜態方法名,回調js方法為前台接受結果的方法。
例子:
后台代碼:
[System.Web.Services.WebMethod] public static string ShowValue() { return "js調用后台方法"; }
前台代碼:
1 <script type="text/javascript"> 2 3 function bclick() 4 { 5 PageMethods.ShowValue(sshow); 6 } 7 8 function sshow(val) //回傳方法用val接受后台代碼ShowValue的執行結果 9 { 10 document.getElementById("show").innerText = val; 11 } 12 13 14 </script> 15 16 17 18 <input id="Button1" type="button" value="click" onclick="bclick();" /> 19 20 <div id="show"> 21 </div>