ScriptManager.RegisterStartupScript 方法

ScriptManager.RegisterStartupScript 方法1、ScriptManager.RegisterStartupScript方法(Page,Type,String,String,Boolean): 参数page类型:System.Web.UI.Page正在注册该客户端脚本块的页对象。type类型:System.Type该客户端脚本块的类型。通常使用typeof运算符(C#)或GetType运算符(VisualBasic)来指定该参数,以检索正在注册该脚本的控件的类型。key类型:System.String该脚本块的唯一标识符。

大家好,又见面了,我是你们的朋友全栈君。

1、ScriptManager.RegisterStartupScript 方法 (Page, Type, String, String, Boolean):

 

参数

page

类型:
System.Web.UI.Page


正在注册该客户端脚本块的页对象。

type

类型:
System.Type


该客户端脚本块的类型。
通常使用 typeof 运算符 (C#) 或 GetType 运算符 (Visual Basic) 来指定该参数,以检索正在注册该脚本的控件的类型。

key

类型:
System.String


该脚本块的唯一标识符。

script

类型:
System.String


脚本。

addScriptTags

类型:
System.Boolean


如果用 <script></script> 标记括起该脚本块,则为 true;否则为 false

2、ScriptManager.RegisterStartupScript 方法 (Control, Type, String, String, Boolean)

参数

control

类型:
System.Web.UI.Control


正在注册该客户端脚本块的控件。

type

类型:
System.Type


该客户端脚本块的类型。
通常使用 typeof 运算符 (C#) 或 GetType 运算符 (Visual Basic) 来指定该参数,以检索正在注册该脚本的控件的类型。

key

类型:
System.String


该脚本块的唯一标识符。

script

类型:
System.String


脚本。

addScriptTags

类型:
System.Boolean


如果用 <script></script> 标记括起该脚本块,则为 true;否则为 false

3、使用体会

如果页面中不用Ajax,cs中运行某段js代码方式可以是:
Page.ClientScript.RegisterStartupScript(Page.GetType(), “”, “<script>window.open(‘default2.aspx’)</script>”);
如果页面中使用了Ajax ,则上述代码即使执行也无效果。对这种情况我们通常采用:
ScriptManager.RegisterStartupScript(this.Button1, this.GetType(), “alertScript”, “window.open(‘default2.aspx’);”, true);
其中第一个参数为要注册脚本的控件ID,试了一下,只要是本页面的就行。
第二个参数为注册脚本控件类型,是控件还是this的GetType()都可以,typeOf(string)也没问题.
第三个脚本函数的名字,随便起。
第四个是脚本内容。
第五个是标明是否再添加脚本标签,如果第四个参数里包含了<script></script>标签,此处则为false,否则为true。

注意:aspx代码是这样的

 

 


<div>
    
<asp:UpdatePanel ID=”UpdatePanel1″ runat=”server”>
        
<ContentTemplate>
            
<asp:TextBox runat=”server” ID=”TextBox2″ >
            
</asp:TextBox>
            
<asp:Button runat=”server” Text=”Button” ID=”Button1″ onClick=”Button1_Click” />
        
</ContentTemplate>
        
<Triggers>
            
<asp:PostBackTrigger ControlID=”Button1″ />
        
</Triggers>
     
</asp:UpdatePanel>
</div>

我在Button1_Click的事件里注册脚本,一定要加红色的部分,否则总是提示不能parse什么东西!

另外,js无法干涉cs代码。所以一旦脚本注册成功,js和cs代码会互不相干的各自运行。

 

以上的内容来自别人的文章,现在说一下自己的使用体会:在按钮Button1的onClick事件中注册脚本可以这样写:ScriptManager.RegisterStartupScript(this.UpdatePanel1, Page.GetType(), System.DateTime.Now.Ticks.ToString(), “window.open(‘default2.aspx’);”, true);页面中的红色部分也可以去掉了。现在对第三个参数“脚本函数的名称”要特别说明一下,

如果在onClick事件中,使用该方法注册了两个脚本。如果注册的两个脚本函数的名称相同,则第二个脚本函数就不会执行。因为脚本管理器使用此字符串来分析是否是一个已经加载过的脚本,如果加载过,将不会再次渲染。所以第二个就不会加载执行了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162306.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等[通俗易懂]

    最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等

    2022年2月10日
    36
  • element ui 图片加载失败_vue 3.x 中使用element-ui时, el-image图片加载失败!!「建议收藏」

    element ui 图片加载失败_vue 3.x 中使用element-ui时, el-image图片加载失败!!「建议收藏」问题描述vuecreateele命令创建了一个vue3.x的项目cdelecnpminpmrunserve把项目跑起来cnpmielement-ui-S安装element-ui修改HelloWorld.vue(增加使用el-image及其他组件),跑起来后,el-image对应的图片显示加载失败,但如果换成绝对地址就能正确加载,不知道什么原因!问题出现的环境背景及…

    2022年5月22日
    57
  • oracle unpivot 索引_Pivot 和 Unpivot[通俗易懂]

    oracle unpivot 索引_Pivot 和 Unpivot[通俗易懂]Pivot和Unpivot使用简单的SQL以电子表格类型的交叉表报表显示任何关系表中的信息,并将交叉表中的所有数据存储到关系表中。Pivot如您所知,关系表是表格化的,即,它们以列-值对的形式出现。假设一个表名为CUSTOMERS。SQL>desccustomersNameNull?Type–…

    2022年10月26日
    0
  • 防止黑客入侵网站

    防止黑客入侵网站你的网站是否经常被黑客入侵?站长怎样防止自己的网站被黑客入侵?黑客入侵现在最普遍的是利用注入来到达入侵的目的。站长怎样防止自己的网站被黑客入侵?以下是我的经验之谈,大家可以参考下!  黑客入侵的网站首选的大部分都是流量高的网站,怎样避免呢?个人认为必要做好已下步骤!  一:注入漏洞必须补上  什么是注入漏洞,怎么产生的,这些我也不好意思在这说了,百度上很多关于这方面的介绍。比如说你的网

    2022年7月15日
    17
  • Mybatis和ibatis的区别

    Mybatis和ibatis的区别1、Mybatis实现了接口绑定,使用更加方便。在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件,而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。这可以说是Mybatis最重要的改进。注意:虽然Mybatis支持在接口中直接使用annotation的配置方式来简化配置,不过

    2022年10月30日
    0
  • 惊艳的时间轮定时器「建议收藏」

    惊艳的时间轮定时器「建议收藏」http://www.cnblogs.com/zhongwencool/p/timing_wheel.html问题引入:游戏里面每个Player身上有很多buffs,在每一个tick(最小时间段)都要去检查buff里面的每一个buff是不是过期,产生的效果如何,造成在每个tick里面都去遍历一个长list,明显很不好。怎么优化?1.原始模型:

    2022年9月27日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号