C#后台添加js脚本

34 篇文章 0 订阅
一、使用Response.Write
1.方法:
Response.Write("<script languge='javascript'>alert('成功改动');</script>");
2.常见问题:
(1)问题:Response.Write 后连接Response.Redirect ,则Response.Write无法显示,直接跳转入Response.Redirect 的页面。
解决方法:跳转页面写在js中,如
Response.Write("<script languge='javascript'>alert('成功改动');window.location.href='index.aspx'</script>");
(2)问题:假设在Ajax的UpdatePanel中的button中用Response.Redirect()或Response.Write()进行URL带參数的页面重定向时出现错误。
因为Ajax是无刷新的,而使用Response进行带參重定向时须要刷新页面。
解决方法:在UpdatePanel下设置“asp: PostBackTrigger”的“ControlID”为指定的控件名称即可,如:
<Triggers>
<asp:PostBackTrigger ControlID="GridView" />
</Triggers>
能够用注冊client事件的方法解决UpdatePanel中的重定向问题
跳转到某一指定页面Response.Redirect("xxx.aspx?yy="+Ftype+"");  
Response.Write("<script languge='javascript'>window.parent.popupContent.Hide();</script>");
Response.Write("<script languge='javascript'>window.parent.grdCarToOther.PerformCallback(" + iCrdID + ");</script>");

二、使用RegisterClientScriptBlock
1.方法
public void RegisterClientScriptBlock(Type type, string key, string script)
public void RegisterClientScriptBlock(Type type, string key, string script, bool addScriptTags)
eg:ClientScript.RegisterClientScriptBlock(this.GetType(), "script1", "alert(1);", true);
2.参数介绍: 
(1)type 要注册的启动脚本的类型。
(2)key 要注册的启动脚本的键,也就是你自己给这段脚本起的名字。相同 key 的脚本被当作是重复的,对于这样的脚本只输出最先注册的,
(3)ClientScriptBlock 和 StartupScript 中的 key 相同不算是重复的。script 脚本代码。
(4)addScriptTags 是否添加 <script> 标签,如果脚本代码中不含 <script> 标签,则应该指定该值为 true,若不指定该值,会被当作 false 对待。
RegisterClientScriptBlock 与 RegisterStartupScript 的区别:
ClientScript.RegisterClientScriptBlock(this.GetType(), "script1", "alert(1);", true);
ClientScript.RegisterStartupScript(this.GetType(), "script1", "alert(2);", true);

三、使用RegisterStartupScript
1.方法:
public void RegisterStartupScript(Type type, string key, string script)
public void RegisterStartupScript(Type type, string key, string script, bool addScriptTags)
eg:ClientScript.RegisterStartupScript(this.GetType(), "script2", "alert(4);", true);
2.参数介绍:
同RegisterClientScriptBlock的参数介绍。

四、三者区别:
1.Response.Write可以输出JavaScript,但输出的内容是在 <html> 之前,这会导致一些问题,比如样式表失效,甚至会导致一些脆弱的浏览器发生错误。
2.ClientScript则可以方便地管理 JavaScript,应该说 ClientScript.RegisterClientScriptBlock 与 ClientScript.RegisterStartupScript只有一点区别,那就是RegisterClientScriptBlock将脚本代码写在 <form> 之后,而 RegisterStartupScript 将代码写在 </form>(注意是结束标签)之前。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值