【ASP.NET】从服务器端注册客户端脚本
一、在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", "http://www.baidu.com/test.js");
客户端“源文件”呈现:<script src="http://www.baidu.com/test.js"
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=...
onsubmit="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/
【ASP.NET】从服务器端注册客户端脚本的更多相关文章
- js前台与后台数据交互-后台调前台(后台调用、注册客户端脚本)
转自:http://blog.csdn.net/wang379275614/article/details/17049721 客户端脚本一般都在前台,这里讲的是(1)在后台调用前台定义的脚本(2)在后 ...
- ASP.NET 网页动态添加客户端脚本
在System.Web.UI.Page类中包含了RegisterStarupScript()和RegisterClientScriptBlock()两个方法,使用这两个方法可以实现向Web页面动态添加 ...
- ASP.NET中后台注册js脚本攻略(转)
用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别: 1.使用Page ...
- 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本
(14)Review what client scripts you are using 招数14: 检查你使用了什么客户端脚本 Out of the box, many ASP.NET projec ...
- Asp.Net_ 服务端向客户端写JavaScript脚本
在Asp.net 服务端处理脚本,一般都用 ClientScriptManager ,即web窗体服务端的this.ClientScript.该对象比较常用的方法: 1.RegisterArrayDe ...
- ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程
在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NET AJAX Library中的PageRequestManager, ...
- webControls与客户端脚本路径
网上有用的资料不多,在一本电子书中摘抄了内容如下 webControls配置节只有一个clientScriptsLocation属性,此属性用于指定ASP.NET客户端脚本的默认存放路径.这些文件是包 ...
- 实现服务器端与客户端的高频实时通信 SignalR(2)
说明:本篇文章与上篇文章 实现服务器端与客户端的实时通信 SignalR(1) 基本代码类似,只是做了些处理 高频 的改动. 一.本文出处:SignalR 实例介绍 (建议看原著里面有DEMO下载) ...
- pushlet实现服务器端向客户端推送信息
使用Pushlet来实现服务器端向客户端推送信息 1. 实现方式: 有两种实现方式: 1. 通过配置文件来实现定时的从服务器端向客户端推送信息 2. 通过API主动 ...
随机推荐
- MySQL【第二篇】基本命令
一.连接MySQL 登录 mysql 有两种方式: 远程主机:mysql -h主机地址 -u用户名 -p密码 -P端口号 本机:mysql -h主机地址 -u用户名 -p密码 -P端口号 如果端口号是 ...
- 聊聊动画引擎 pop
iOS可以通过CADisplayLink实现自定义动画引擎,pop就是基于此实现的,而且比原生Core Animation更强大好用.譬如当ViewController侧滑返回的时候,系统会将Core ...
- Storm 中遇到的问题
问题1. 在storm.yaml 中配置了4个slot,而在Storm UI上面看到了8个slot 解决:Storm.yaml 中配置错误,正确配置如下,- 和 6700 之间是有空格存在的,而在我 ...
- semaphore(信号量)使用说明
例子: 以一个停车场运作为例.为了简单起见,假设停车场只有三个车位,一开始三个车位都是空的.这时如果同时来了五辆车,看门人允许其中三辆不受阻碍的进入,然后放下车拦,剩下的车则必须在入口等待, ...
- 数据结构与算法JavaScript 读书笔记
由于自己在对数组操作这块比较薄弱,然后经高人指点,需要好好的攻读一下这本书籍,原本想这个书名就比较高深,这下不好玩了.不过看着看着突然觉得讲的东西都比较基础.不过很多东西,平时还是没有注意到,故写出读 ...
- JBPM WEB CONSOLE安装实录
http://www.blogjava.net/paulwong/archive/2009/03/13/259551.html JBPM WEB CONSOLE是一个B/S端的,能管理JBPM的流程和 ...
- 那天有个小孩跟我说LINQ(一) 转载
1 LINQ准备(代码下载) 新建项目 linq_Ch1控制台程序,新建一个Entity文件夹 1.1 对象初始化器 在Entity新建一个类Student,代码如下 using S ...
- LiangNa Resum
LiangNa AnShan Street, YangPu, NY @.com OBJECTIVE: Seeking a position to contribute my skills and ed ...
- C++ 变量转换
atoi,atol,strtod,strtol,strtoul实现类型转换2006-02-13 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://ivanvic.blogb ...
- 版本控制:集中式 vs 分布式
集中式 CVCS的版本库集中存放在中央服务器,而工作时都是用自己的电脑,所以要先从中央服务器取得最新的版本,然后工作完后再将自己的代码推送给中央服务器. CVS:最早的.开源.免费.由于自身设计的问题 ...