asp.net--Page.ClientScript.RegisterStartupScript用法

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "",
"<script>if(confirm(‘保存成功!是否继续添加?‘))
{location.href=‘ProductonAdd.aspx‘}else{location.href=‘ProductonList.aspx‘}</script>");

//后台弹出确定框

ClientScript.RegisterStartupScript(GetType(), "message",
"<script>alert(‘请正确输入!‘);</script>");

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "",
"<script>alert(‘数据添加成功!‘);{location.href=‘ProductonList.aspx‘}<
/script>");

Page.ClientScript.RegisterStartupScript(typeof(string), "",
"<script>window.location.href=‘AdminMain.aspx‘;</script>");

//后台弹出文本框

ScriptManager.RegisterStartupScript(Page, typeof(string), "popUp",
"window.open(‘rptView.aspx‘,‘打印预览
‘,‘toolbar=no,location=no,scrollbars=yes,top=200px,left=200px,width=904px,height=650px‘)",
true);

Response.Write 与  
Page.ClientScript.RegisterStartupScript 与
Page.ClientScript.RegisterClientScriptBlock 之间的区别

方法1,使用Response.Write,这种方法会把JS代码写在页面的最顶部(<html>的前面):
System.Web.HttpContext.Current.Response.Write("<script
language=javascript>alert(‘JS代码‘);</script>");

方法2,使用RegisterStartupScript,这种方法会把JS代码嵌入在页面的底部、表单的最后
(</form>前面),适用于要在页面控件加载完成后运行的JS代码 :
System.Web.UI.Page
page =
(System.Web.UI.Page)System.Web.HttpContext.Current.Handler;
if
(!page.ClientScript.IsStartupScriptRegistered(page.GetType(),"clientScript"))
   
page.ClientScript.RegisterStartupScript(page.GetType(),
"clientScript", "<script
language=javascript>alert(‘JS代码‘);</script>");

方法3,使用RegisterClientScriptBlock,这种方法会把JS代码嵌入在页面的顶部、表单的最前
(<form>后面),适用于要在控件加载前执行的JS代码,类似于上面的Response.Write方式 :
System.Web.UI.Page page =
(System.Web.UI.Page)System.Web.HttpContext.Current.Handler;
if
(!page.ClientScript.IsClientScriptBlockRegistered(page.GetType(),"clientScript"))
   
page.ClientScript.RegisterClientScriptBlock(page.GetType(),
"clientScript", "<script
language=javascript>alert(‘JS代码‘);</script>");

那么,方法2和方法3之间有何不同呢?主要区别在于,RegisterStartupScript
方法是将 JavaScript 嵌入到 ASP.NET 页面的底部,恰好位于关闭元素
</form>
的前面。RegisterClientScriptBlock 方法是将 JavaScript
嵌入到页面中开启元素 <form>
的紧后面。那么,这有何不同呢?正如我们将要看到的,这有很大的不同。

就此列举一例,以下是在页面加载到浏览器时,将焦点置于该页面上的一个文本框中的方法 - 使用利用了
RegisterStartupScript 方法的 Visual Basic:

Page.ClientScript.RegisterStartupScript(Me.GetType(), "Testing", _   "document.forms[0][‘TextBox1‘].focus();", True)

由于在浏览器运行到页面底部并执行此小段 JavaScript
时,就已生成了页面上的文本框,并已将其放到了页面中,因此,此方法运行正常。但是,如果不按照上述方法,而编写如下代码(使用
RegisterClientScriptBlock 方法):

Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "Testing", _  "document.forms[0][‘TextBox1‘].focus();", True)

文本框控件将不会获得焦点,且会在页面上生成一个 JavaScript 错误

时间: 2024-08-10 11:05:22

asp.net--Page.ClientScript.RegisterStartupScript用法的相关文章

asp.net中Page.ClientScript.RegisterStartupScript用法小结(转)

//ASP.NET后台页面跳转 Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>if(confirm('保存成功!是否继续添加?')){location.href='ProductonAdd.aspx'}else{location.href='ProductonList.aspx'}</script>"); //后台弹出确定框 ClientScript.

Page.ClientScript.RegisterStartupScript用法小结

使用类型.键.脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本. 参数 type 要注册的启动脚本的类型. key 要注册的启动脚本的键. script 要注册的启动脚本文本. addScriptTags 指示是否添加脚本标记的布尔值. 备注: 启动脚本由它的键和类型唯一标识.具有相同的键和类型的脚本被视为重复脚本.只有使用给定的类型和键对的脚本才能使用该页面进行注册.试图注册一个已经注册的脚本不会创建重复的脚本. 调用 IsStartupScriptRegistered 方

asp.net中Page.ClientScript.RegisterStartupScript用法小结

ClientScript.RegisterStartupScript(Page.GetType(), "Show", "alert('" + l_strConferenceNo + "');",true);原型如下 ClientScript.RegisterStartupScript(Type type, string key, string script,bool addScriptTags);区别是bool addScriptTags为tru

Response.Write 与 Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptBlock 之间的区别

Response.Write 与   Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptBlock 之间的区别 方法1,使用Response.Write,这种方法会把JS代码写在页面的最顶部(<html>的前面):System.Web.HttpContext.Current.Response.Write("<script language=javascript>a

Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptBlock 之间的区别

Page.ClientScript.RegisterClientScriptBlock 在页面紧跟<form>之后,整个页面未完全加载完成. Page.ClientScript.RegisterStartupScript 在页面</form>之前,页面基本空间等加载完成之后. 举个例子,页面加载时需要给页面 文本框 赋默认值. 用Page.ClientScript.RegisterStartupScript OK,是没问题的. 但是用Page.ClientScript.Regist

page.ClientScript.RegisterStartupScript

page.ClientScript.RegisterStartupScript()可以添加客户端脚本,有4个参数 type:要注册的启动脚本的类型. key:要注册的启动脚本的键. script:要注册的启动脚本文本. addScriptTags:指示是否添加脚本标记的布尔值. 在后台中写下代码;page.ClientScript.RegisterStartupScript(page.GetType(), "js", "alert('在html中处理');"); 就

Page.ClientScript.RegisterStartupScript不执行问题

c#后台使用Page.ClientScript.RegisterStartupScript在前台注册一段脚本提示,发现没有效果,寻寻觅觅,终于从度娘处找到了原因: 该页面多次使用到了Page.ClientScript.RegisterStartupScript(Type type, string key, string script) 问题就出在了参数key上,同一页面会按顺序执行Page.ClientScript.RegisterStartupScript(Type type, string

Response.Write/Page.ClientScript.RegisterStartupScript/Page.ClientScript.RegisterClientScriptBlock区别

Response.Write 会把JS代码写在页面最顶部(前面) RegisterStartupScript 会把JS代码嵌在页面底部.表单最后(</form>前面),适用于要在页面空间加载完成后运行的JS代码 RegisterClientScriptBlock 会把JS代码嵌在页面顶部.表单最前面(<form>后面),适用于要在控件加载前执行的JS代码,类似于Response.Write方式

非静态的字段、方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用 (封装注册脚本)

在写项目时想对asp.net的注册前台脚本事件进行封装,就添加了一个BasePage.cs页面,但一直报错‘非静态的字段.方法或属性“System.Web.UI.Page.ClientScript...”要求对象引用”’ 原写法: /// <summary> /// 显示客户端提示框 /// </summary> /// <param name="msg"></param> public static void ShowMsg(strin