• 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。

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

  • 相关阅读:
    Spark中RDD、DataFrame和DataSet的区别
    如何为Spark应用程序分配--num-executors,--execuor-cores和--executor-memory
    一些常用的Spark SQL调优技巧
    使用sendmail命令发送附件
    spark.sql.shuffle.partitions 和 spark.default.parallelism 的区别
    Spark Shuffle
    [Spark学习] Spark RDD详解
    将时间戳(timestamp)转换为MongoDB中的ObjectId
    如何使用pig的AvroStorage存储array/map类型
    关于Avro中的Unions类型
  • 原文地址:https://www.cnblogs.com/renfeng/p/4112705.html
Copyright © 2020-2023  润新知