在UpdatePanel使用脚本的方法(AJAX)
这段时间,在C#中封装一些通用的JavaScript程序段,平时用得好好的Response.Write()、Page.ClientScript.RegisterStartupScript(),可一到了UpdatePanel中却根本无法起作用。
其实使用ScriptManager.RegisterStartupScript()即可,其正确的使用方法为:
ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.GetType(), "HelloWorld", "alert('The page has loaded!')",true);
//或者参数直接用当前Page,这样简单又方便。
ScriptManager.RegisterStartupScript(this,this.GetType(), "HelloWorld", "alert('The page has loaded!')",true);
另
.NET 2.0
中调用脚本的几个方法
方法名
|
用途
|
示例
|
RegisterArrayDeclaration
|
创建
JavaScript
数组
|
ScriptManager
.RegisterArrayDeclaration(UpdatePanel1,
"Hello", ,"1,2,3");
|
RegisterClientScriptBlock
|
为对象输出一个函数
,
为
true
时自动加上
<script></script>
|
ScriptManager
.RegisterClientScriptBlock(UpdatePanel1,
this.GetType(),
"HelloWorld"
,
"function helloWorld(){alert(1);}"
, true);
|
RegisterClientScriptInclude
|
添加对脚本文件的引用
|
ScriptManager
.RegisterClientScriptInclude(UpdatePanel1,
this.GetType(),
"HelloWorld"
,Server.MapPath(
"test.js"
));
|
RegisterClientScriptResource
|
访问程序集中的脚本文件
|
ScriptManager
.RegisterClientScriptResource(UpdatePanel1,
this.GetType(),
"test.js"
);
|
RegisterExpandoAttribute
|
为指定控件添加额外的属性
|
ScriptManager
.RegisterExpandoAttribute(UpdatePanel1,Button1.ClientID,
"attributeName","attributeValue",
true
);
|
RegisterHiddenField
|
添加个隐藏值
|
ScriptManager
.RegisterHiddenField(UpdatePanel1,
"hiddenFieldName", "hiddenFieldIntialValue");
|
RegisterOnSubmitStatement
|
提交的
Confirm
|
ScriptManager
.RegisterOnSubmitStatement(UpdatePanel1,
this.GetType(),
"test"
,
"return window.confirm('test')"
);
|
RegisterStartupScript
|
添加一个最开始运行的脚本
|
ScriptManager
.RegisterStartupScript(UpdatePanel1,
this.GetType(),
"HelloWorld"
,
"alert('The page has loaded!')"
,true);
|
本文参考《UpdatePanel使用脚本》(作者未知),稍作修改和补充,在此由衷地感谢。在此整理并做个笔记,供大家参考。
补充一点:ScriptManager的适用性强,直接用它既可以适合于一般的ASPX中,还适合于UpdatePanel。
wonsoft于成都
2008年7月8日