【问题标题】:calling alert from code behind not working从代码中调用警报不起作用
【发布时间】:2017-05-02 08:05:11
【问题描述】:

我正在通过

显示警报
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "alert", 
             "alert('" + ex.Message.Replace("'", "") + "');", true);

在服务器端按钮单击的 catch 块中。但是我在按钮单击的第一行中调用了另一个脚本管理器

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "alert", 
              "$('#ContentPlaceHolder1_ctl00_rwsender').show();
ValidatorEnable(document.getElementById('ContentPlaceHolder1_ctl00_rfvsender'), true);", true);

在这种情况下,它不显示警报消息,但第一行脚本正在运行。

如果我删除第一行脚本代码,警报就会起作用。两个不同的脚本管理器之间有什么关系,为什么一个脚本会影响另一个脚本? 我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: javascript c# asp.net


    【解决方案1】:

    第二个不行,因为你直接给脚本管理器发送Js指令,(注意alert是window native函数,这就是它起作用的原因)

    只需在您的客户端 (aspx) 中声明一个函数:

    function ShowElement(){
        $('#ContentPlaceHolder1_ctl00_rwsender').show();
        ValidatorEnable(document.getElementById('ContentPlaceHolder1_ctl00_rfvsender'), true);
    } 
    

    然后在后端最后调用这个:

    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "show",'ShowElement()', true);
    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "alert","alert('" + ex.Message.Replace("'", "") + "');", true);
    

    请注意,每个注册脚本的密钥必须是唯一的, 这里第一个注册为“show”和alert“alert”

    仅表单信息防止在您的 js 代码中使用 sush 生成的客户 ID:

    只需使用document.getElementById("<%=NameOfYourControl.ClientID %>"), true); 而不是硬编码值:ContentPlaceHolder1_ctl00_rwsender

    【讨论】:

    • @onur 如果这对你有帮助,请把答案标记为已解决✓(留下答案)(就像这张图片 => [图片解析] 帖子(i.stack.imgur.com/T8umg.png))谢谢
    • 我实际上将“警报”称为第二个。首先,我调用显示或隐藏 div 的函数。我尝试了您的解决方案,但遗憾的是它没有解决。我正在为不同的 div 调用几个类似 ShowElement() 的函数。在那之后,我打电话给警报。显示元素有效,警报无效。
    • @onur 我忘了说,如果你想注册两个脚本,只需为每个脚本指定不同的密钥,请查看我的更新答案!
    • @onur ,嗨,如果这解决了您的问题,您能否将答案标记为已解决谢谢 :) +1
    【解决方案2】:

    (代表 OP 发布)。

    问题是RegisterStartupScript 的关键参数。两人都很警觉。我将它们更改为 Guid,它起作用了。

    【讨论】:

      【解决方案3】:

      你可以试试这个吗? Response.Write("<script>alert('Alert!');</script>");

      你可以在脚本标签中添加你的js代码

      Response.Write("<script>$('#ContentPlaceHolder1_ctl00_rwsender').show();</script>");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-23
        • 2014-08-13
        • 2020-03-06
        • 2014-11-18
        • 2015-10-19
        • 1970-01-01
        相关资源
        最近更新 更多