用RegisterStartupScript注册脚本失效的解决方法

当使用RegisterStartupScript注册脚本失效时,可能是因为代码未放置在<form runat='server'></form>之间。通过查阅MSDN,了解到ClientScriptManager.RegisterStartupScript的方法,需要指定类型、键、脚本文本和是否添加脚本标签来正确注册启动脚本。
摘要由CSDN通过智能技术生成
用RegisterStartupScript注册脚本失效的原因之一是没有将代码放到<form runat="server"></form>中间!!!

 

查阅MSDN,找到ClientScriptManager的用法:
ClientScriptManager.RegisterStartupScript 方法 (System.Type  type, String key , String script, BooleanaddScriptTags)
参数
type
要注册的启动脚本的类型。
key
要注册的启动脚本的键。
script
要注册的启动脚本文本。
addScriptTags
指示是否添加脚本标记的布尔值。
使用类型、键、脚本文本和指示是否添加脚本标记的布尔值向 Page 对象注册启动脚本。

 

下面的代码示例演示 RegisterStartupScript 方法的用法。请注意,addScriptTags 参数设置为 false,所以脚本开始标记和结束标记包含在 script 参数中。using System.Web.UI;

using System.Text;

<%@ Page Language="C#"%>
<script runat="server">
  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client scripts on the page.
    String csname1 = "PopupScript";
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();
        
    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
      String cstext1 = "alert('Hello World');";
      cs.RegisterStartupScript(cstype, csname1, cstext1, true);
    }

    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
    {
      StringBuilder cstext2 = new StringBuilder();
      cstext2.Append("<script type=text/javascript> function DoClick() {");
      cstext2.Append("Form1.Message.value='Text from client script.'} </");
      cstext2.Append("script>");
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
    }
  }
</script>
<html>
  <head>
    <title>ClientScriptManager Example</title>
  </head>
  <body>
	 <form id="Form1" runat="server">
	     <input type="text" id="Message"> <input type="button" value="ClickMe" οnclick="DoClick()">
	 </form>
  </body>
</html>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值