Response.Write和ClientScript.RegisterStartupScript区别

转载 2016年08月29日 09:02:03

Response.Write的生成HTML代码,你会发现Response.Write方法生成的代码是写到了HTML代码的最开始,即标签之前。此时,所有的 HTML对象都还没有生成,如果要想使用HTML内的对象,并与之交互,就会出现“找不到对象”的错误。因此,笔者推荐一个更加符合CodeBehind方式的方式----使用RegisterXXX方法。RegisterXXX包括:RegisterClientScriptBlock、RegisterStartupScript以及用于判断的IsStartupScriptRegistered函数。

RegisterStartupScript 的原型是:

  Overridable Public Sub RegisterStartupScript( _
  ByVal key As String, _
  ByVal script As String _
  )

  其中:key表示这个脚本的唯一标识,script是代表脚本的字符串。

  RegisterClientScriptBlock的原型与RegisterStartupScript相同,两个函数不同在于将其包含的脚本代码写入到HTML文件的不同位置。RegisterClientScriptBlock在 Page 对象的元素的开始标记后立即发出客户端脚本,RegisterStartupScript则是在Page 对象的元素的结束标记之前发出该脚本。如果你的脚本有与页面对象(doucument对象)进行交互的语句,则推荐使用RegisterStartupScript,反之如果要想客户端脚本尽可能早的执行,则可以使用RegisterClientScriptBlock或Response.Write。

   如:

ClientScript.RegisterStartupScript(GetType(), "", "<script>if(confirm('你确认要删除导航:/"" + GridView1.Rows[index].Cells[2].Text + "/"吗?')==true) window.open('del.aspx?id="+ID+"');</script>")

  为了防止在页面中反复加入脚本,在注册脚本时ReisterStartupScript/RegisterClientScriptBlock使用了key作为注册的Key,然后在程序中可以使用IsClientScriptBlockRegistered作判断。


原链接:http://blog.csdn.net/haoliumeihua/article/details/4075251

Response.Write和ClientScript.RegisterStartupScript区别

Response.Write的生成HTML代码,你会发现Response.Write方法生成的代码是写到了HTML代码的最开始,即标签之前。此时,所有的 HTML对象都还没有生成,如果要想使用HTML...
  • u010100177
  • u010100177
  • 2013年12月10日 08:01
  • 463

response.write()刷新后影响页面排版,可用 this.Page.ClientScript.RegisterStartupScript

this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "alert('两次密码输入不一致,请检查!')");...
  • a6225301
  • a6225301
  • 2014年03月21日 15:33
  • 1129

ClientScript.RegisterStartupScript和Response.Redirect 一起用不弹框

ClientScript.RegisterStartupScript和Response.Redirect 一起用不弹框 原因就是,Response.Redirect()属服务器端处理,而Client...
  • zhijianliuyanxiang
  • zhijianliuyanxiang
  • 2012年01月05日 10:40
  • 2041

ClientScript.RegisterStartupScript不能弹出的问题及解决方案

ClientScript.RegisterStartupScript生成的是js脚本xxxxx,位置 在 上面,与页面展现 关系不大,但是有时候不能就生成到这儿,因为我有的代码要去操作父页面中的元素,...
  • llkaximoduo
  • llkaximoduo
  • 2014年06月26日 11:46
  • 1399

document response 中write方法区别

response是ASP的一种对象,用来访问服务器端所创建的并发回到客户端的响应信息。而write是response的一种方法,功能是在当前的HTTP响应信息流和IIS缓冲区写入指定的字符,使之成为返...
  • xrr0520
  • xrr0520
  • 2014年03月12日 16:08
  • 613

ASP问题 Response.Write 里写网页代码 双引号

ASP问题 Response.Write 里写网页代码 双引号  asp里面两个双引号代替一个双引号 ===================================== ...
  • wkj001
  • wkj001
  • 2016年12月15日 09:37
  • 1754

ClientScript.RegisterStartupScript使用说明

ClientScript.RegisterStartupScript用来向前台页面注册script脚本,有两种重载方法,分别为ClientScript.RegisterStartupScript(Ty...
  • wcp88888888
  • wcp88888888
  • 2010年09月08日 11:22
  • 4085

asp.net中Response.write与Response.Redirect同时使用

今天在做项目的时候出现了个问题,Response.write与Response.Redirect同时使用的时候,直接跳转到Response.Redirect后的界面,没有显示出Response.wri...
  • hhooong
  • hhooong
  • 2015年04月28日 21:05
  • 1361

ClientScript.RegisterStartupScript 不起作用

ClientScript.RegisterStartupScript 在使用的時候不起作用 做如下更改即可 string url = "MoRen_TiaoXingMaPrint.aspx?t...
  • loeley
  • loeley
  • 2011年10月08日 13:03
  • 1940

response.write ""引号内的语法是怎样的

1,双引号""ASP中处在双引号中的可以是任意的字符、字符串,HTML代码。比如cnbruce here")%>产生的页面效果分别是:默认文字和加粗文字“cnbruce here”下面再想想,如果我要...
  • cinda_wl
  • cinda_wl
  • 2009年12月27日 20:46
  • 1099
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Response.Write和ClientScript.RegisterStartupScript区别
举报原因:
原因补充:

(最多只允许输入30个字)