asp.net 前后台相互调用

在实际的Web开发中,我们可能会常常遇到后台调用前台JS代码或者前台JS调用后台代码的情况。今天就把比较实用的前后台相互调用的方法总结出来和大家分享。

<1>后台代码调用前台JS代码

一、说到后台代码调用前台的JS代码很多人首先就会想到使用 ClientScript.RegisterStartupScript()方法,该方法主要是注册启动脚本文本,即在后台执行调用前台JS代码

该方法有两个重载,

1、ClientScript.RegisterStartupScript(Type type,string key ,string script)//分别表示:1、要注册的启动脚本的类型(一般直接填this.GetType()即可),2、要注册的启动脚本的键(相当于为执行脚本起一个名字,任意名即可),3、要注册的启动脚本文本(一般为"<script>函数()</script>");

示例:

ClientScript.RegisterStartupScript(this.GetType(), "SayHello", "<script>SayHello(‘"+name+"‘)</script>");//先获取用户姓名,然后再调用前台的JS函数SayHello(name);

2、ClientScript.RegisterStartupScript(Type type,string key, string script,bool flag);//该函数和第一参数的区别在于将最后一个参数设为"ture"时,第三个参数可以直接写被调用的函数,不用再加"<script></script>",这两个方法差别不是很大。

示例:

ClientScript.RegisterStartupScript(this.GetType(), "SayHello1", "SayHello(‘" + name + "‘)", true);//跟第一方法的效果一样,调用前台SayHello(name)函数,如果最后一个值设为false,则仍需添加上"<script></script>"标记

这里需要特别注意的是在注册启动脚本的时候,键是唯一的,不能重复,如果有将会报错。

二、使用ClientScript.RegisterClientScriptBlock()方法,

该方法有两个重载,使用方法几乎和ClientScript.RegisterClientScriptBlock()的两个方法一模一样。这里只是给出示例,就不再做过多的解释。

ClientScript.RegisterClientScriptBlock(this.GetType(), "SayHello2", "ShowPerson(‘" + age + "‘)", true); ClientScript.RegisterClientScriptBlock(this.GetType(),"SayHello2","<script>SayHello(‘"+name+"‘)</script>");

在这里主要讲一下RegisterClientScriptBlock方法和RegisterStartupScript方法和区别

RegisterStartupScript,这种方法会把JS代码嵌入在页面的底部、表单的最后 (</form>前面),适用于要在页面控件加载完成后运行的JS代

RegisterClientScriptBlock,这种方法会把JS代码嵌入在页面的顶部、表单的最前 (<form>后面),适用于要在控件加载前执行的JS代码

三、使用Control.Attribute属性

这也是一种比较简单好用的方法,可以将该方法和控件的客户端方法相关联,比如“onblur,onfocus,onmousemove,onmouseover“等,在这里只是把该方法作为Control的一个属性来用。

示例:

在Page_Load()方法里添加如下代码:

txtname.Attributes["onblur"] = "show(‘" + txt.Text + "‘)";//当用户离开文本框时,会提示所输入的内容

还可以通过这种方法来控制前台的显示。其实现方法和本例的方法都是一样的,在这里就不做过多的介绍了。

四、可以使用Control的一个属性,OnClientClick

为该属性赋值OnClientClick="SayHello()";则就会调用客户端的方法,该方法的本质就是一个客户端的方法。

示例:

<asp:Button ID="Button1" runat="server" OnClientClick="Get()" Text="OnClientClick方法测试"/>

<2>前台JS调用后台的方法

一、最简单的一种方式,在前台的JS函数中写下如下代码:

Var name=<%=SayHello()%>

在Asp.NET 以前的ASP就是通过这样的方式将cs代码写到apsx页的,在<% %>中就可以写cs代码了,效果跟在cs页写一样。

在前台页面<head><head>节点中添加如下代码:

<script type="text/javascript>

function Get() {

var hello="<%=SayHello() %>";

alert(hello);

}

</script>

后台cs页代码如下:

public string SayHello()

{

return " Javascript调用后台代码显示姓名: Olive";

}

结果:

二、通过辅助按钮实现前台JS调用后台代码

1、先在前台添加一个服务器端按钮,双击,进入后台.cs页,写下将要执行的代码

如下:

protected void Button4_Click(object sender, EventArgs e) {

//在此方法里写下要执行的代码,此处为简单的示例

Response.Write("<script>alert(‘O(∩_∩)O哈哈~你好!‘)</script>");

}

2、将该按钮的Width属性设为0,将Height属性设为0,形如

<asp:Button ID="btnhoutai" runat="server" Text="" Width="0" Height="0"

onclick="Button4_Click" />

3、在前台添加一个JS函数,如下:

function Show1() {

document.getElementByIdx_x("btnhoutai").click();

}

4、添加html按钮并将其onclick="Show1()";

如下:

<input id="btnjs" type="button" value="Js 调用后台C#函数" onclick="Show1()"/>

经过以上这四步就可以实现JS调用后台的代码了。

这一篇的总结就到这里吧,这里主要是把比较实用的前后台相互调用的方法简单总结下

时间: 2024-08-29 05:07:07

asp.net 前后台相互调用的相关文章

ASP.NET的后台代码和前台JS代码相互调用

在实际的Web开发中,我们可能会常常遇到后台调用前台JS代码或者前台JS调用后台代码的情况.今天就把比较实用的前后台相互调用的方法总结出来和大家分享. <1>后台代码调用前台JS代码 一.说到后台代码调用前台的JS代码很多人首先就会想到使用 ClientScript.RegisterStartupScript()方法,该方法主要是注册启动脚本文本,即在后台执行调用前台JS代码 该方法有两个重载, 1.ClientScript.RegisterStartupScript(Type type,st

JS前后台方法的相互调用

一.前台调用后台的方法: 1.在后台编写你要调用到前台的方法,如下://javaScript函数中执行C#代码中的函数public string str() { return "javaScript方法中执行C#代码中的方法"; } 2.前台用JS就可以实现调用后台的方法,如下:<script type="text/javascript"> function Test() { var a = "<%=str()%>"; /

ASP.NET前台后台相互调用

1.前台调用后台方法 //前台代码 <script type="text/javascript" language="javascript"> function test() { var a = "<%=GetStr()%>";//调用后台GetStr()方法 alert(a); } </script> <asp:Button ID="btnTest" OnClientClick=&q

Java与.NET的WebServices相互调用

一:简介 本文介绍了Java与.NET开发的Web Services相互调用的技术.本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用Java做客户端调用.NET开发的Web Services. 二:项目需要的工具 WindowsXP Professial(IIS) Eclipse3.1(已装好Tomcat axis) VS.Net 2003 备注:下载安装Tomcat5.5.16 以及 Axis的开发包,并做相应配置.看我前一片

iOS原生和H5的相互调用

为什么现在越来越多的APP中开始出现H5页面? 1,H5页面开发效率更高,更改更加方便: 2,适当缩小APP安装包的大小: 3,蹭热点更加方便,比如五一,十一,双十一搞活动: 那么为什么说H5无法取代原生的APP,只能处在一个共存的例子呢? 1,这个是由系统的底层决定的,极端例子,所有的应用都通过H5展示,那么你是否需要一个浏览器? 2,涉及庞大的功能,涉及复杂的逻辑结构,涉及安全性的要求,H5可以胜任吗? 所以,H5和原生的融合会出现动态的调和,最终会找到一个平衡. 那么接下来就说下iOS开发

C程序与Lua脚本相互调用

Lua脚本是一种可用于C程序开发/测试的工具,本篇介绍一下C程序与Lua脚本如何进行相互调用,更加详细的操作参见<Programing in Lua>.本文分为3个部分:1.Windows环境下Lua的下载以及安装注意事项:2.Visual C++6.0中Lua的配置:3.C程序与Lua脚本相互调用实例. 1.Windows环境下Lua的下载以及安装注意事项 a.下载Lua for Windows,笔者用的版本是V5.1.4-35: b.上微软官网,下载Visual C++运行库——vcred

JAVA与.NET的相互调用——利用JNBridge桥接模式实现远程通讯

分布式开发的历史 利用Remote方式调用远程对象实现服务器与客户端之间通讯是一种常用的网络开发方式,在.NET与JAVA开发当中,对Remote远程对象早已有着足够的支持(对Remote远程对象调用有兴趣的朋友欢迎参考一下利用远程对象实现分布式开发). 从2003年开始.NET当中就盛传着.NET Remoting远程对象调用的分布式开发,.NET Remoting主要用于管理跨应用程序域的同步和异步RPC 会话.在默认情况下,Remoting可以使用 HTTP 或 TCP 协议进行信息通讯,

前后台方法调用

1.后台调用前台JS方法(带参数) ClientScript.RegisterStartupScript(类型,键,调用的JS方法名(+参数+),是否启用该方法(true or flase)); 例:ClientScript.RegisterStartupScript(typeof(Page), "aa", "SelectLeftPage(" + nRoleId +  ")", true); 2.前台调用后台方法 方法有两种:一种是Ajax方法,

Iframe父页面与子页面之间的相互调用

iframe元素就是文档中的文档. window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象.但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者iframe标签),浏览器就会为原始文档创建一个window对象,再为每个iframe创建额外的window对象,这些额外的window对象是原始窗口的子窗口. contentWindow: 是指指定的iframe或者iframe所在的window对象 Demo1 父页面fu.html: <!DOCT