ASP.NET 后台调用前台javascript 的方法

转载 2016年10月09日 11:35:49

从服务端调用客户端函数来操作,也就是在asp.net中调用javascript脚本中已经定义好的脚本函数。一般有以下几种方法


1. Response.Write : 比如在你单击按钮,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上如下代码:


     Response.Write("<script type='text/javascript'> alert();</script>");

这个方法缺陷就是不能调用脚本文件中自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.write上写上函数定义,比如:


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


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


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

注意,这里一般有两种方法,在NET4.0之前是使用page.registerclientscriptblock去注册脚本,但在.NET4.0使用时会提示 page.registerclientscriptblock已过时,具体解决办法是使用ClientScript类,但有的时候,在使用框架时,大家总希望功能页总在框架中显示,但是在每一个页面都去写判断的JS脚本,会很麻烦,这时可以让所有页面都去继承一个基类,在基类中使用注册脚本的方式让每一个页面都显示在框架中,代码如下:


  public class RoleBase:System.Web.UI.Page

  {  

public RoleBase() {  this.Load+=new EventHandler(RoleBase_Load);  }

   void RoleBase_Load(object sender,EventArgs e){  

              //向客户端注册只能在框架中打开页面的脚本

Type cstype=this.GetType();

                 string Script="if(window.top.location.href.toLowerCase().indexOf(\"default.aspx\")==-1{";

           Script+="window.top.location.href=\"/admin/default.aspx\";}";


               System.Web.UI.ClientScriptManager cs=Page.ClientScript;

if(!cs.IsStartupScriptRegistered(cstype,"top"))

 {         cs.RegisterStartupScript(cstype,"top",Script,true);  }


            //判断用户是否有权限访问页面或功能

       if(!IsAdministrator())

{

     Response.Redirect("/HttpError/Error.aspx");

  Response.End();

}

}

public bool IsAdministrator()

{

   return true;

}

}


这样每个页面都去继承这个类,就可以达到在框架中显示每一个页面了


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

在使用了ASP.NET控件后,希望点击控件触发JAVASCRIPT脚本,那么只需要在后台代码中添加如下代码即可。

Button1.ATTRIBUTES.ADD("onclick","MyFunc();");

对于这种方式,只能在Onload中或类似于onload的初始化过程中添加才有效。而且是先执行脚本函数,无法改变执行顺序。注意,以上所有方法中,后台代码都不能有转化

当前页的代码,比如Redirect等,要把转页代码放在脚本里面。

Asp.net 后台调用js方法

1. 用Response.Write方法  代码如下: Response.Write("alert("XXX");");  此方只能调用内部函数,具体调用自定义的函数只能在Response.Write...
  • GrandShaw
  • GrandShaw
  • 2016年11月21日 13:49
  • 3620

ASP.NET,C#后台调用前台javascript的五种方法

C#后台调用前台javascript的五种方法 由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件。在网...
  • LMAOhuaNL
  • LMAOhuaNL
  • 2011年08月29日 15:14
  • 5279

Asp.net后台调用前台JS函数实现

第一种:使用普通的添加控件中的Attributes属性进行调用 例如,像一般的普通的按钮:Button1.Attributes.Add("onclick","MyFun();"); 此方法...
  • energeticsunxiaocong
  • energeticsunxiaocong
  • 2016年05月10日 11:29
  • 1780

ASP.NET中前台调用后台、后台调用前台的变量或方法

一、前台调用后台 1、前台调用后台变量(注:数组变量不能获得,需先在后台已分隔符转成字符串变量,前台得到后再处理成数组)   后台页面提供一个全局变量,Page_Load中给赋值,前台使用来获得变量;...
  • zunguitiancheng
  • zunguitiancheng
  • 2014年02月16日 21:35
  • 1625

asp.net js方法互调 asp.net 前台如何调用后台方法

1. JavaScript函数中执行C#代码中的函数: 方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2、在前台写一个js函数,内容为document...
  • u011966339
  • u011966339
  • 2017年04月06日 16:21
  • 1187

.Net后台调用前台js的两种方法

第一种,在页面的时候调用: cs后台代码: C#代码   protected void Page_Load(object sender, EventArgs e)...
  • wangjin1990123
  • wangjin1990123
  • 2014年12月04日 11:29
  • 3599

【Asp.net】前台的Html控件向后台传值以及前台的html的input按钮如何调用后台的方法

一、前言      前一段的时候,同事有个项目是Asp.net的,自己有一段的时间没有接触了,反过来找个时间研究了一下她的项目,功能其实很简单,就是一个简单的登录页面,前面用到的是html控件,两个i...
  • kisscatforever
  • kisscatforever
  • 2017年02月16日 19:07
  • 4363

asp.net js与后台C#代码相互调用

(1)前台js调用后台C#代码 前台js   function Ceshi()   {     var a = "";     alert(a);   } 后台代码 public string ...
  • ydm19891101
  • ydm19891101
  • 2016年04月21日 08:52
  • 384

asp.net后台调用前端js

[html] view plain copy print? 为什么在项目后台要使用C#调用前台的Javascript代码呢?因为我们在项目开发的过程中,根据项目的需要,我们需要用到其他项目组...
  • Vezn_King
  • Vezn_King
  • 2016年05月05日 13:43
  • 2019

一按钮事件调用另一按钮事件ASP.NET【C#】

以前做过VB.NET的项目,调用另一事件的时候只要写:事件名(null,null),就可以了,没想到用C#编程语言开发的ASP.NET项目也是。以下是我做的练习项目供大学学习一下。图一如下:图二如下:...
  • tolearner
  • tolearner
  • 2011年05月23日 22:55
  • 6467
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET 后台调用前台javascript 的方法
举报原因:
原因补充:

(最多只允许输入30个字)