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>