• ScriptManager.RegisterStartupScript方法和Page.ClientScript.RegisterStartupScript() 区别


    ScriptManager.RegisterStartupScript方法

    如果页面中不用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。

     

    如果在onClick事件中,使用该方法注册了两个脚本。如果注册的两个脚本函数的名称相同,则第二个脚本函数就不会执行。

    因为脚本管理器使用此字符串来分析是否是一个已经加载过的脚本,如果加载过,将不会再次渲染。所以第二个就不会加载执行了。

    测试:页面中使用了Ajax ,使用上述的区别

    前台代码:

     <form id="form1" runat="server">
        <asp:ScriptManager runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel runat="server">
            <ContentTemplate>
                <asp:Button ID="Button1" runat="server" Text="Response测试" OnClick="Button1_Click" />
                <asp:Button runat="server" Text="Page测试" OnClick="Unnamed3_Click" />
                <asp:Button runat="server" Text="ScriptManager测试" OnClick="Unnamed4_Click" />
            </ContentTemplate>
        </asp:UpdatePanel>
        </form>

    后台代码:

      protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Write("<script>alert('Response.Write');</script>");
        }
        protected void Unnamed3_Click(object sender, EventArgs e)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('Page');", true);
        }
        protected void Unnamed4_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('ScriptManager');", true);
        }

    显然:

    只有第三个按钮才能弹出信息,第一个按钮报错,第二个没反应

  • 相关阅读:
    在awk里引用shell变量(支持正则)
    python模块pyautogui
    一个完整的搜索系统
    信息检索笔记(9)再论文档评分
    信息检索导论学习笔记(8)向量空间模型
    搜索引擎查询扩展
    信息检索笔记(10)Lucene文档评分机制
    Lucene的分析过程
    信息检索导论学习笔记(7)文档评分、词项权重计算
    信息检索导论学习笔记(5)
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/4730233.html
Copyright © 2020-2023  润新知