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

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

===============后台代码调用前台JS代码===============

一、说到后台代码调用前台的JS代码很多人首先就会想到使用Clients cript对象。

Clientscript.RegisterStartups cript()方法,该方法主要是注册启动脚本文本,即在后台执行调用前台JS代码

该方法有两个重载,

、要注册的启动脚本文本(一般为"<s cript>函数()</s cript>");

示例:

Clientscript.RegisterStartups cript(this.GetType(),"SayHello","<s cript>SayHello('"+name+"')</s cript>");//先获取用户姓名,然后再调用前台的JS函数SayHello(name);

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

示例:

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

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

二、使用Clientscript.RegisterClients criptBlock()方法,注册客户端脚本块

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

Clientscript.RegisterClients criptBlock(this.GetType(),"SayHello2", "ShowPerson('" + age + "')",true);       Clientscript.RegisterClients criptBlock(this.GetType(),"SayHello2","<s cript>SayHello('"+name+"')</s cript>");

在这里主要讲一下RegisterClients criptBlock方法和RegisterStartups cript方法和区别

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

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

通过html源代码可见。

三、使用Control.Attribute属性(服务器控件)

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

示例:

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

txtname.Attributes["onblur"] ="show('" + txt.Text + "')";//当用户离开文本框时,会提示所输入的内容 (在Page_Load使用该方法,其实是在编译成源文件时在对应的html元素的属性调用js函数,如<inputtype=”text” onblur=”show()”/>)

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

四、可以使用Control的一个属性,(服务器控件),OnClientClick

为该属性赋值OnClientClick="SayHello()";则就会调用客户端的方法,该方法的本质就是一个客户端的方法。(该属性只有服务器控件具有,在编译成源文件时,其实是转换成对应的事件,如OnClientClick会转换成onclick)

示例:

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

===============前台JS调用后台方法=================

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

Var name=<%=SayHello()%>

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

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

<s cript type="text/javas cript>

function Get() {

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

alert(hello);

}

</s cript>

后台cs页代码如下:

public string SayHello()

{

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

}

结果:

二、通过辅助按钮实现前台JS调用后台代码(这样相当于添加多了一个按钮)

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

如下:

protected void Button4_Click(object sender,EventArgs e)       {

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

Response.Write("<s cript>alert('O(∩_∩)O哈哈~你好!')</s cript>");

}

,形如

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

onclick="Button4_Click" />

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

function Show1() {

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

}

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

如下:

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

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

from:http://www.bdqn.cn/news/201307/10227.shtml

ASP.NET前台JS与后台CS函数如何互相调用的更多相关文章

  1. asp.net 前台js和后台得到FormView中的控件,以TextBox为例

    一.前台js获取FormView中的控件 js得到前端控件的ID,比如TextBox(这里设置其ID为TextBox1),大家都知道,是document.getElementById("&l ...

  2. ASP.NET前台代码绑定后台变量方法总结

    经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有<%= str%>和<%# str %>两种方式,这里简单总结一下.如有错误或异议之处,敬请各位指教. 一方 ...

  3. 转:ASP.NET前台代码绑定后台变量方法总结

    经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有<%= str%>和<%# str %>两种方式,这里简单总结一下.如有错误或异议之处,敬请各位指教. 一方 ...

  4. [ASP.NET] 前台代码绑定后台变量方法总结 [转]

    原文链接:https://www.cnblogs.com/lerit/archive/2010/10/22/1858007.html 经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般 ...

  5. WebView中Js与Android本地函数的相互调用

    介绍 随着Html5的普及,html在表现力上不一定比原生应用差,并且有很强的扩展兼容性,所以越来越多的应用是采用Html与Android原生混合开发模式实现. 既然要实现混合开发,那么Js与Andr ...

  6. net中前台javascript与后台c#函数相互调用

    问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? ...

  7. 前台js与后台方法互调

    一:后台调用前台js的方法 ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", " ...

  8. RSA前台js加密,后台C#解密

    一.需求: 为了安全,项目中前台登陆用的密码需要加密传到后台,后台c#解密登陆密码. 二.解决方案 采用非对称加密算法RSA来达到目的,前台登陆页面一加载便发送一次ajax请求获取后台产生的公钥,用于 ...

  9. 前台js接收后台的json数据

    后台返回的json数据,如php的: return json_encode($data); 在前台 js接收如下: function json2object(str){ var jsstr = str ...

随机推荐

  1. C++ thread函数使用

    #include <thread> #include <iostream> using namespace std; int shared_value = 0; void ch ...

  2. Linux编辑器的选择使用

    在执行 crontab -e的时候 发现编辑器不对 用的是nano 立刻 sudo select-editor 然后终端返回 Select an editor. To change later, ru ...

  3. android84 广播接受者

    #广播接收者(广播接受者进程关闭了也能接收到广播,系统会在清单文件中找哪个广播接受者可以收到这条广播,然后去启动这个接受者的进程,找不到则广播发了就发了没人收到而已) * 现实中:电台要发布消息,通过 ...

  4. hdu2030java

    汉字统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissio ...

  5. Android开发之屏幕方向

    一.处理屏幕方向变化的两种技术 1.锚定方法 2.调整大小和重新定位,这种方法一般是分别为横向和纵向两种模式各自定义用户界面xml界面文件,当方向变化时读取对应的界面配置文件即可. 二.检测屏幕方向改 ...

  6. MegaCli监控RAID磁盘健康信息

    首先有必要先介绍一下有关RAID卡的使用,有关Cache问题也有个人理解:生产系统上的物理机磁盘配置大多都是RAID5,之前会经常性的遇到磁盘IO在某个时间极度的跟不上节奏,稍微写入量,磁盘utils ...

  7. Bash判断是否是root

    #!/bin/bash ]; then echo "Not Root" exit fi

  8. SQL给字段加上统一的某个字符

    表名:News  字段名:No_id Update News set No_id='字符'+No_id

  9. android获取Mac地址和IP地址

    获取Mac地址实际项目中测试了如下几种方法:(1)设备开通Wifi连接,获取到网卡的MAC地址(但是不开通wifi,这种方法获取不到Mac地址,这种方法也是网络上使用的最多的方法) //根据Wifi信 ...

  10. [FTP] FTPHelper-FTP帮助类,常用操作方法 (转载)

    点击下载 FTPHelper.zip 这个类是FTP服务器的一些操作1.连接FTP服务器 2.上传3.下载4.删除文件5.获取当前目录下明细(包含文件和文件夹)  6.获取FTP文件列表(包括文件夹) ...