ScriptManager.RegisterStartupScript方法[通俗易懂]

ScriptManager.RegisterStartupScript方法[通俗易懂]出处:忘记了,致歉作者 如果页面中不用Ajax,cs中运行某段js代码方式可以是:Page.ClientScript.RegisterStartupScript(Page.GetType(),””,”window.open(‘default2.aspx’)”);如果页面中使用了Ajax,则上述代码即使执行也无效果。对这种情况我们通常采用:ScriptManag

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

出处:忘记了,致歉作者
 
如果页面中不用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代码是这样的

复制代码

ScriptManager.RegisterStartupScript方法[通俗易懂]

<
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/158643.html原文链接:https://javaforall.net

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


相关推荐

  • Java微服务下的分布式事务介绍及其解决方案

    Java微服务下的分布式事务介绍及其解决方案1.前言1.由于最近在学习springcloud的项目,现在互联网下,分布式,微服务横行,难免会遇到分布式下的事务问题,这是一个难点,也是面试经常问的,别面试官一看你简历,都是微服务项目,问你了解啥是分布式事务不,你来句没有,这就很尴尬了,当然微服务下可能没有分布式事务,但是很多场景是需要分布式事务的,下面我就来介绍下什么是分布式事务,和分布式事务的解决方案2问题描述在介绍分布式事务…

    2022年6月14日
    28
  • python django环境搭建_pip安装virtualenv

    python django环境搭建_pip安装virtualenvpython虚拟环境虚拟环境(virtualenvironment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西

    2022年8月7日
    7
  • treeview控件使用详解python_TreeView控件实践

    treeview控件使用详解python_TreeView控件实践TreeView控件可以通过HierarchicalDataTemplate和DataTemplate来自定义。1)HierarchicalDataTemplate用来支持HeaderedItemsControl,其中DataType指定当前的数据类型,只有符合这个类型才使用HierarchicalDataTemplate;ItemsSource用来指定ItemsHost;内部的自定义实现(…

    2025年8月11日
    4
  • 分布式锁的实现与应用场景对比

    分布式锁的实现与应用场景对比分布式锁在传统的基于数据库的架构中,对于数据的抢占问题往往是通过数据库事务(ACID)来保证的。在分布式环境中,出于对性能以及一致性敏感度的要求,使得分布式锁成为了一种比较常见而高效的解决方案。应用场景介绍:场景1:场景2:某服务提供一组任务,A请求随机从任务组中获取一个任务;B请求随机从任务组中获取一个任务。在理想的情况下,A从任务组中挑选一个任务,任务组删除该任务,B从剩下的的任务中

    2025年10月2日
    3
  • 断路器HystrixCircuitBreaker

    断路器HystrixCircuitBreaker

    2021年6月30日
    77
  • transparentblt[通俗易懂]

    transparentblt[通俗易懂]透明位图的显示作者:王骏下载本文示例代码包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、TransparentBlt函数的使用TransparentBlt

    2025年8月25日
    3

发表回复

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

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