C#后台调用前台javascript的五种方法

由于项目需要,用到其他项目组用VC开发的组件,在web后台代码无法访问这个组件,所以只好通过后台调用前台的javascript,从而操作这个组件。在网上找了找,发现有三种方法可以访问到前台代码:

第一种,OnClientClick    (vs2003不支持这个方法)
<asp:Button ID="Button1" runat="server" Text="Button"  OnClientClick="client_click()" OnClick="Button1_Click"  />
client_click() 就是javascript的一个方法。

第二种,Button1.Attributes.Add("onclick", "return Client_Click()");
“Client_Click() “是一个前台方法,可以替换成一般的脚本如:retrun confirm('确定删除吗?')

第三种,是我自认为最灵活的一种,ClientScript.RegisterStartupScript
例子:StringBuilder sb = new StringBuilder();
        sb.Append("<script language='javascript'>");
        sb.Append("Button2_onclick('" + serverPath + "')");
        sb.Append("</script>");
        ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());

第四种. 用Response.Write方法写入脚本

比如在你单击按钮后,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上
Response.Write("<script type='text/javascript'>alert();</script>");

这个方法有个缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定义,比如Response.Write("<script type='text/javascript'>function myfun(){...}</script>");

第五种 用ClientScript类动态添加脚本

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

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

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

最新文章

  1. css3实现的动画效果
  2. jquery根据name属性查找
  3. JavaScript打印正倒直线
  4. Linux文件系统应用---系统数据备份和迁移(用户角度)
  5. 发布新款博客皮肤SimpleMemory
  6. Dynamic Animator 、 CollectionViewLayout
  7. javascirpt的apply和call
  8. Node log4js
  9. FB面经 Prepare: Task Schedule
  10. body全屏
  11. DNS 访问 Service - 每天5分钟玩转 Docker 容器技术(138)
  12. 毕业回馈-89c51之定时器/计数器(Timer/Count)
  13. iframe和form表单实现ajax请求上传数据
  14. 第1章 HTTP协议基本介绍了解
  15. 使用PSR-4配合composer autoload 自动加载文件夹
  16. [leetcode]Evaluate Reverse Polish Notation @ Python
  17. char* 与 char[] 的区别
  18. django-from
  19. la5135 无向图 点-双连通 运用
  20. java--Quartz 定时执行

热门文章

  1. python 日期、时间、字符串相互转换
  2. JavaScript 之 String 对象
  3. 从CMS到G1:LinkedIn个人主页调优实战
  4. 关于“在从服务器接收结果时发生传输级错误。 (provider: TCP Provider, error: 0 - 指定的网络名不再可用。)”的解决方法之一
  5. 【GitHub】源代码管理工具初识
  6. etcd和flannel实现docker跨物理机通信
  7. python之栈与队列
  8. CentOS7 编译安装MySQL5.6.38(一)
  9. 算法 dfs —— 将二叉树 先序遍历 转为 链表
  10. Linux学习25-Xshell设置页面最大显示行数