asp.net后台调用javascript的方法

1. 用Response.Write方法

  代码如下:

  Response.Write("<script type=‘text/javascript‘>alert("XXX");</script>");
  此方法缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定 义,比如

  Response.Write("<script type=‘text/javascript‘>function myfun(){}</script>");

3.普通的添加控件的Attributes属性

  对于普通按钮就是:Button1.Attributes.Add("onclick","MyFun();");

  只能在Onload中或类似于onload的初始化过程中添加才有效。而且是先执行脚本函数,无法改变执行顺序。

2.用ClientScript类

  代码如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。

  ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");

  这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数。

ClientScript.RegisterStartupScript方法有3个重载:

1:RegisterStartupScript(Page, String, String) 向 ScriptManager 控件注册一个启动脚本块并将该脚本块添加到页面中。需要向第三个参数添加<script></script>脚本标签。第一个参数为页面Page。第二个脚本函数的名字,随便起。第三个是<script></script>形式的脚本内容。

2:RegisterStartupScript(Control, Type, String, String, Boolean) 使用 ScriptManager 控件为 UpdatePanel 中的某个控件注册一个启动脚本块,并将该脚本块添加到页面中。第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.第三个脚本函数的名字,随便起。第四个是脚本内容。第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。

3:RegisterStartupScript(Page, Type, String, String, Boolean) 为每个异步回发向 ScriptManager 控件注册一个启动脚本块,并将该脚本块添加到页面中。页面如果有用到Ajax需要用到这种。第一个参数为页面Page。第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.第三个脚本函数的名字,随便起。第四个是脚本内容。第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。

如果页面中不用Ajax,cs中运行某段js代码方式可以是:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>window.open(‘default2.aspx‘)</script>");
如果页面中使用了Ajax ,则上述代码即使执行也无效果。对这种情况我们通常采用:
ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), "alertScript", "window.open(‘default2.aspx‘);", true);
其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。
第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.
第三个脚本函数的名字,随便起。
第四个是脚本内容。
第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。

如果注册的两个脚本函数的名称相同,则第二个脚本函数就不会执行。因为脚本管理器使用此字符串来分析是否是一个已经加载过的脚本,如果加载过,将不会再次渲染。所以第二个就不会加载执行了。

时间: 2024-10-10 14:15:33

asp.net后台调用javascript的方法的相关文章

ASP.NET后台调用前台JS函数的三种常见方法

第一种:使用普通的添加控件中的Attributes属性进行调用 例如,像一般的普通的按钮:Button1.Attributes.Add("onclick","MyFun();"); 此方法只能在Onload中或者类似于onload的初始化过程中添加才有效.并且是先执行脚本函数,同时无法改变执行顺序. 第二种:使用Response.Write方法进行调用 例如,像我们经常会使用到的Response.Write("<scripttype='text/ja

js调用.net后台事件,和后台调用前台等方法以及js调用服务器控件的方法

http://blog.csdn.net/deepwishly/article/details/6670942  ajaxPro.dll基础教程(前台调用后台方法,后台调用前台方法) 1. javaScript函数中执行C#代码中的函数: 方法一:间接触发后台代码 1.首先建立一个服务端控件按钮命名为btn1,双击进入后台将调用或处理的内容写入btn1_click中; 2.在前台写一个js函数,内容为document.getElementByIdx("btn1").click(); 3

Asp.net 后台添加Meta标签方法

Asp.net 后台添加Meta标签方法包括keywords,CSS.JS 下面是从Asp.net 后台添加CSS.JS.Meta标签的写法,我们这里写成函数方便以后使用.如果函数放在页面类中, Page参数也可以不要. 首先导入命名空间 using System.Web.UI.HtmlControls; 代码如下: /// /// 添加JS脚本链接 /// /// 页面 /// 路径 public void AddJS(System.Web.UI.Page page, string url)

asp.net后台操作javascript:confirm返回值

在asp.net中使用confirm可以分为两种: 1.没有使用ajax,confirm会引起也面刷新 2.使用了ajax,不会刷新 A.没有使用ajax,可以用StringBuilder来完成. (一)asp.net用StringBuilder控制后台操作javascript:confirm返回值,此方法比较烦琐1.后台启动事件 StringBuilder sb = new StringBuilder();        sb.Append("<script language='java

js调用后台,后台调用前台等方法总结

1. javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getElementByIdx("btn1").click(); 3.在前台或后台调用js函数,激发click事件,等于访问后台c#函数: 方法二:1.函数声明为public 后台代码(把public改成protected也可以) public string ss() { return(&quo

Asp.net 后台调用js方法(转)

1. 用Response.Write方法 代码如下: Response.Write("<script type='text/javascript'>alert("XXX");</script>"); 此方法缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定 义,比如 Response.Write("<script type='text/javascrip

Asp.net 后台调用js方法

购物车实现逻辑简单.代码量也很少,具体细节就不说了,使用的时候,只要把MockDB类稍微改改,因为它是商品数据入口,为实现分布式部署,实际应用时可以更改为从服务调用,如:Web Service.WCF等,这样就可以把这个购物车嵌入到已有系统去了. 下载:ShoppingCart.zip

一种SpringMVC调用Javascript的方法

在spring的controller里面,一般是进行业务逻辑的处理,组织数据模型,然后选择适当的显示模版进行展示,这种情况下,我们可以事先做一个js的模版,然后controller根据不同的参数调用此显示页面进行Javascript调用,但是现在还有另外一种方法更加直接,技术关键点是: 1.返回字符串,并且是ResponseBody 2.设置MIME type是 text/html 代码如下: @ResponseBody @RequestMapping(value="/callJs",

关于.net后台调用前台js方法

在服务器端的后台代码Button_Click事件中调用一个JS写的方法 protected void btnShow_Click(object sender, EventArgs e) {//这是Button处理事件的第一句 调用客端的js函数Page.RegisterStartupScript("showDiv", "<script>ShowDiv()</script>");//但是VS会提示这种方法已经过时了,但是还是可以使用的!如果比较