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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL三表连接查询

    SQL三表连接查询下面三个表分别是:table1表、table2表、table3表目标:查询A公司的所有30岁以下员工的名字。    employee_id   company_id           1          101           2          101           3           102   …

    2022年5月3日
    52
  • 我国人口老龄化预测_中国人口老龄人口比例

    我国人口老龄化预测_中国人口老龄人口比例1、国内人口增速逐步下滑我国人口总量将近14亿,增速持续降低,城镇化率接近60%。建国以来,随着经济社会发展,我国人口总量从1949年的5.4亿人,增长至2018年13.9亿人。从增速来看,70年代人口总量的增速迅速下滑至1.3%-1.5%左右,90年代以来,人口总量增速持续缓慢下滑,近年保持在0.5%左右,但2018年增速进一步降低至0.4%。另一方面,中国城镇化率不断提升,到2018年已经达到59.58%。2018年我国人口总量为13.9亿人,同比增长0.4%,城镇化率59.58%数据来

    2025年9月14日
    22
  • 两人下象棋_双人五子棋同屏

    两人下象棋_双人五子棋同屏阅读本文前,请您先点击右上角的蓝色字体“优课屋”,再点击“关注”,这样您就可以继续订阅文章了!(国际象棋怎么玩)在我门的生活中,棋类游戏种类非常的多,其中我们最常玩的棋类游戏有中国象棋,中国跳棋,五子棋,围棋,军棋的。而最近这几年我们很多人都接触到了国际象棋这个游戏,国际象棋其实和中国象棋有很多相似的地方,很多玩家也都特别喜欢玩国际象棋这个游戏。我们现在可以非常方便的在我们身边的网络棋牌…

    2022年8月29日
    3
  • 基于android点餐系统需求分析,基于Android的点餐系统的设计及实现

    基于android点餐系统需求分析,基于Android的点餐系统的设计及实现内容简介:基于Android的点餐系统的设计及实现,毕业论文,共58页,20083字,附开题报告、答辩文稿、源程序。摘要随着无线网络(如4G、3G、GPRS)及无线网络技术与移动操作系统的不断发展,移动生活逐渐成为社会的主流。现如今,许多餐饮企业仍然采用传统人工式服务,使服务质量、效率变得很差。为了改变这一现状,本设计将介绍一种基于Android的无线点餐系统。这种点餐系统包括服务器端与客户端,…

    2022年6月19日
    25
  • 面向对象的数据库db4o: 安装并使用db4o

    面向对象的数据库db4o: 安装并使用db4o为什么80%的码农都做不了架构师?>>>…

    2022年7月21日
    14
  • VS2015无法解析外部符号

    VS2015无法解析外部符号在使用VS编辑C++时,遇到了无法解析外部符号的错误严重性代码说明项目文件行错误LNK2019无法解析的外部符号"public:__thiscallEmployee::Employee(void)"(??0Employee@@QAE@XZ),该符号在函数"public:__thiscallmanager::manager(int,classstd::bas…

    2022年6月28日
    28

发表回复

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

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