js调用后台非静态方法

JavaScript018

js调用后台非静态方法,第1张

方法一:

1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中

2、在前台写一个js函数,内容为document.getElementById("btn1").click()

3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

方法二:

1、函数声明为public

后台代码

public string methodname() //注意该方法不能为void,否则执行会报错

{

return ""

}

2、在html里用<%=fucntion()%>可以调用

前台脚本

<script language=javascript>

var a = "<%=methodname()%>"

alert(a)

eval("<%=methodname()%>")//如果只是要执行服务端的一些代码也可以写为如下,这样就可以执行服务端代码了

</script>

方法三:利用PageMethods调用后台代码

实现方法三按照以下步骤:

1.在后台创建方法,必须是static(静态的),方法必须是public类型的,否则访问不到会报异常,

接着要在该方法头部上加上[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 "js调用后台方法"

}

二.有参数方法

[System.Web.Services.WebMethod]

public static string ShowValue2(string msg)

{

return msg

}

前端代码:

<script type="text/javascript">

//调用后台无参数方法

function bclick()

{

PageMethods.ShowValue(sshow)

}

function sshow(val) //回传方法用val接受后台代码ShowValue的执行结果

{

document.getElementById("show").innerText = val

}

//调用后台有参数方法

function bclick2()

{

var text = "test"

PageMethods.ShowValue2(text,sshow2)

}

function sshow2(val) //回传方法用val接受后台代码ShowValue的执行结果

{

document.getElementById("show").innerText = val

}

</script>

<input id="Button1" type="button" value="click" onclick="bclick()" />

<input id="Button2" type="button" value="click2" onclick="bclick2()" />

<div id="show"></div>

Ajax正是为了解决此类问题。

AJAX = 异步 JavaScript 和 XML。

AJAX 是一种用于创建快速动态网页的技术。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

这样也就可以通过发送异步请求来调用后台方法。

请参考:http://www.w3school.com.cn/ajax/ajax_intro.asp