博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【ASP.NET】从服务器端注册客户端脚本
阅读量:4945 次
发布时间:2019-06-11

本文共 3147 字,大约阅读时间需要 10 分钟。

一、在Asp.net 服务端处理脚本,一般都用 ClientScriptManager ,即web窗体服务端的this.ClientScript。该对象比较常用的方法:

1、RegisterArrayDeclaration:在服务端,向客户端生成一个数组定义

      服务端代码:   this.ClientScript.RegisterArrayDeclaration("aAry", "1,2,3");

      客户端“源文件”呈现

<script type="text/javascript">

<!--
var aAry =  new Array(1,2,3);
// -->
</script>

2、RegisterClientScriptBlock:向客户端写一个脚本块,这种方式,不会自动在前后加上 <script type="text/javascript">和</script>

      服务端代码:this.ClientScript.RegisterClientScriptBlock(this.GetType(), "sblk", "var aa=1;"); 

      客户端“源文件”呈现:var aa=1;

3、RegisterClientScriptInclude:在客户端写一个<script type="text/javascript" src=...></script>

      服务端代码:this.ClientScript.RegisterClientScriptInclude("js", "");

      客户端“源文件”呈现:<script src="" type="text/javascript"></script>

4、RegisterExpandoAttribute:本方法最少三个参数,即客户端控件id、属性名、属性值,在客户端生成一个为控件属性赋值的语句

      服务端代码:this.ClientScript.RegisterExpandoAttribute("form1", "formtype", "form");

      客户端“源文件”呈现:

<script type="text/javascript">

<!--
var form1 = document.all ? document.all["form1"] : document.getElementById("form1");
form1.formtype = "form";
// -->
</script>

5、RegisterHiddenField:自动在客户端生成一个<input type="hidden"...

      服务端代码:this.ClientScript.RegisterHiddenField("hiddenField", "i'm a hidden");

      客户端“源文件”呈现:

<input type="hidden" name="hiddenField" id="hiddenField" value="i'm a hidden" />

 

6、RegisterOnSubmitStatement:在客户端form的onsubmit事件中,自动添加指定的代码

      服务端代码:

   this.ClientScript.RegisterOnSubmitStatement(this.GetType(), "onsubmit1", "var onsubmit11=1;");

   this.ClientScript.RegisterOnSubmitStatement(this.GetType(), "onsubmit2", "var onsubmit22=2;");

      客户端“源文件”呈现:首先为form指定事件处理程序,如:<form id=... οnsubmit="javascript:return WebForm_Submit();"

      其次不论在服务端使用几次RegisterOnSubmitStatement语句,均生成一个javascript function,并将每个RegisterOnSubmitStatement方法中的客户端脚本连接作为该事件处理程序的语句:

<script type="text/javascript">

<!--
function WebForm_OnSubmit() {
var onsubmit11=1;var onsubmit22=2;
return true;
}
// -->
</script>

7、RegisterStartupScript:将制定的脚本代码放到</form>前,并且,该方法发送到客户端的代码前后不会自动添加<script> 和</script>

      服务端代码:this.ClientScript.RegisterStartupScript(this.GetType(), "testStartup", "var jjj=2");

      客户端“源文件”呈现:var jjj=2

      如多次使用,则在客户端也是顺序连接

 

二、小结:

RegisterClientScriptBlock():向页的顶部添加一个脚本块。以字符串形式创建脚本,然后将其传递给方法,方法再将脚本添加到页中。可以使用此方法将任何脚本插入到页中。请注意,脚本可能在所有元素完成之前呈现到页中;因此,您可能无法从脚本中引用页上的所有元素。

RegisterClientScriptInclude():与 RegisterClientScriptBlock 方法类似,但此方法将添加引用外部 .js 文件的脚本块。包含文件在任何其他动态添加的脚本之前添加;因此,您可能无法引用页上的某些元素。

RegisterStartupScript():向页中添加一个脚本块,该脚本块在页完成加载后引发页的 onload 事件之前执行。该脚本通常不创建为事件处理程序或函数;它通常只包含要执行一次的语句。

RegisterOnSubmitStatement():添加响应页的 onsubmit 事件而执行的脚本。该脚本在提交页之前执行,允许您取消提交。

IsStartupScriptRegistered():确定Page对象是否注册了启动脚本。 

IsClientScriptBlockRegistered():确定Page对象是否注册了客户端脚本。

RegisterHIddenField        注册隐藏字段

RegisterArrayDeclaration  注册客户端数组声明

三、示例代码:

Page_Load():

{
 string str = "<script type="javascript">"
            += "function doSubmit()"
            +="{
                      ..............
             +=}"
            += "</script>";
}

//调用方法:

//判断代码是否已经在客户端注册,防止重复注册

            if(Page.IsClientScriptBlockRegistered("doSubmit"))
                Page.RegisterClientScriptBlock("doSubmit",strScript);
//注册表单提交响应脚步
            Page.RegisterOnSubmitStatement("submit","return doSubmit();");

 

摘自   http://blog.163.com/zwx_gis/blog/static/32434435200971071448780/

转载于:https://www.cnblogs.com/jixinyu12345/p/4872655.html

你可能感兴趣的文章
Django的中间件
查看>>
tomcat发布项目时,空文件夹未发布成功
查看>>
POI解决内存溢出问题
查看>>
当今世界最为经典的十大算法--投票进行时
查看>>
自定义jqGrid编辑功能,当行获取焦点时编辑,失去焦点时保存
查看>>
出差(2~二十)
查看>>
汇编语言程序环境搭建masm+debug64位 win10/7
查看>>
popup demo
查看>>
Touch事件及穿透事件
查看>>
BZOJ 1095【ZJOI2007】Hide捉迷藏
查看>>
14.10.3 InnoDB Checkpoints InnoDB 检查点:
查看>>
java对象与xml相互转换工具类
查看>>
JVM内存监控:visualVM jconsole jstatd jmap
查看>>
Boosting
查看>>
Jfinal jsp 整合实例demo
查看>>
URL Rewrite
查看>>
XML,HTML,XHTML
查看>>
Spark搭建HA具体解释
查看>>
Android: 亲測解决模拟器启动慢的问题
查看>>
H265 Rtp封包
查看>>