一、在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】从服务器端注册客户端脚本的更多相关文章

  1. js前台与后台数据交互-后台调前台(后台调用、注册客户端脚本)

    转自:http://blog.csdn.net/wang379275614/article/details/17049721 客户端脚本一般都在前台,这里讲的是(1)在后台调用前台定义的脚本(2)在后 ...

  2. ASP.NET 网页动态添加客户端脚本

    在System.Web.UI.Page类中包含了RegisterStarupScript()和RegisterClientScriptBlock()两个方法,使用这两个方法可以实现向Web页面动态添加 ...

  3. ASP.NET中后台注册js脚本攻略(转)

    用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别:   1.使用Page ...

  4. 教你50招提升ASP.NET性能(八):检查你使用了什么客户端脚本

    (14)Review what client scripts you are using 招数14: 检查你使用了什么客户端脚本 Out of the box, many ASP.NET projec ...

  5. Asp.Net_ 服务端向客户端写JavaScript脚本

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

  6. ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程

    在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NET AJAX Library中的PageRequestManager, ...

  7. webControls与客户端脚本路径

    网上有用的资料不多,在一本电子书中摘抄了内容如下 webControls配置节只有一个clientScriptsLocation属性,此属性用于指定ASP.NET客户端脚本的默认存放路径.这些文件是包 ...

  8. 实现服务器端与客户端的高频实时通信 SignalR(2)

    说明:本篇文章与上篇文章 实现服务器端与客户端的实时通信 SignalR(1) 基本代码类似,只是做了些处理 高频 的改动. 一.本文出处:SignalR 实例介绍 (建议看原著里面有DEMO下载) ...

  9. pushlet实现服务器端向客户端推送信息

    使用Pushlet来实现服务器端向客户端推送信息 1.   实现方式: 有两种实现方式: 1.         通过配置文件来实现定时的从服务器端向客户端推送信息 2.         通过API主动 ...

随机推荐

  1. Thread和Runnable、run和start的区别

    多线程可以通过两种方式来创建: 一.通过继承Thread类. 二.通过实现Runnable接口. 那么中两种方式到底有什么区别呢?那种方式更好些呢? 先看看几个简单的Demo: Demo1 publi ...

  2. VS的一部分快捷键

    快捷键                                         功能CTRL + SHIFT + B                        生成解决方案CTRL + F ...

  3. 关于C语言中运算符优先级的一次错误

    好久没碰编程了,最近有点闲,又拾起来.做了个简单的网络测试程序,测试的时候发现有条语句老是获取不到结果.如下: if(portnumber=atoi(argv[1])>65535) portnu ...

  4. 别了 oi——一篇高三狗的滚粗遗言

    /* 开始于2015年12月 结束于2016年11月 一年的oi生涯有很多值得怀念的事 还记得去年旺哥找我学oi 当时是一脸的蒙逼 要知道 高二才开始搞是很晚了 然而 也就是那一晚之后 许多事情都变了 ...

  5. NUnit使用详解(一)

    转载:http://hi.baidu.com/grayworm/item/38e246165aa7b9433a176e90 NUnit是一个单元测试框架,专门针对于.NET来写的,它是是xUnit的一 ...

  6. ASP.NET问题处理---“数据请求超时错误“”

    数据请求超时,一般有2中解决方式: 1.页面AJAX处理数据时延长时间: 2.后台数据库连接取数据时延长时间. 由于我的后台数据库连接取数据为循环读取数据,所以不存在超时问题,这里具体说说如何修改AJ ...

  7. linux修改主机名(hostname)转载

    Linux修改主机名的方法 用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值. #hostname   //查看机器名#hostname -i  //查看本机器名对应的ip ...

  8. 使windows server 2003 开机不显示登录页面

    1.运行“regedit”,以打开“注册表管理器”:运行注册表编辑器,依次展开[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersi ...

  9. UVA 11462 Age Sort(计数排序法 优化输入输出)

    Age Sort You are given the ages (in years) of all people of a country with at least 1 year of age. Y ...

  10. Peter Pan By: J. M. Barrie

    Audio book: (mp3+txt) http://www.booksshouldbefree.com/book/peter-pan-by-j-m-barrie