一、在Asp.net 服务端处理脚本,一般都用 ClientScriptManager ,即web窗体服务端的this.ClientScript。该对象比较常用的方法:
1、RegisterArrayDeclaration:在服务端,向客户端生成一个数组定义
服务端代码: this.ClientScript.RegisterArrayDeclaration("aAry", "1,2,3");
客户端“源文件”呈现
<script type="text/javas
<!--
var aAry = new Array(1,2,3);
// -->
</script>
2、RegisterClientScriptBlock:向客户端写一个脚本块,这种方式,不会自动在前后加上 <script type="text/javas
服务端代码:this.ClientScript.RegisterClientScriptBlock(this.GetType(), "sblk", "var aa=1;");
客户端“源文件”呈现:var aa=1;
3、RegisterClientScriptInclude:在客户端写一个<script type="text/javas
服务端代码:this.ClientScript.RegisterClientScriptInclude("js", "http://www.baidu.com/test.js");
客户端“源文件”呈现:<script src="http://www.baidu.com/test.js" type="text/javas
4、RegisterExpandoAttribute:本方法最少三个参数,即客户端控件id、属性名、属性值,在客户端生成一个为控件属性赋值的语句
服务端代码:this.ClientScript.RegisterExpandoAttribute("form1", "formtype", "form");
客户端“源文件”呈现:
<script type="text/javas
<!--
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的on
服务端代码:
this.ClientScript.RegisterOnSubmitStatement(this.GetType(), "on
this.ClientScript.RegisterOnSubmitStatement(this.GetType(), "on
客户端“源文件”呈现:首先为form指定事件处理程序,如:<form id=... on
其次不论在服务端使用几次RegisterOnSubmitStatement语句,均生成一个javas
<script type="text/javas
<!--
function WebForm_On
var on
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():向页中添加一个脚本块,该脚本块在页完成加载后引发页的 on
RegisterOnSubmitStatement():添加响应页的 on
IsStartupScriptRegistered():确定Page对象是否注册了启动脚本。
IsClientScriptBlockRegistered():确定Page对象是否注册了客户端脚本。
RegisterHIddenField 注册隐藏字段
RegisterArrayDeclaration 注册客户端数组声明
三、示例代码:
Page_Load():
{
string str = "<script type="javas
+= "function doSubmit()"
+="{
..............
+=}"
+= "</script>";
}
//调用方法:
//判断代码是否已经在客户端注册,防止重复注册
if(Page.IsClientScriptBlockRegistered("doSubmit"))
Page.RegisterClientScriptBlock("doSubmit",strScript);
//注册表单提交响应脚步
Page.RegisterOnSubmitStatement("submit","return doSubmit();");
转自:http://hi.baidu.com/huazaiyx/blog/item/b6de350f05bbb3ee37d12220.html