【问题标题】:Javascript cannot be called twice in user controlJavascript 不能在用户控件中调用两次
【发布时间】:2017-02-22 06:28:11
【问题描述】:

我在用户控件中有一个 javascript:

public void updateStepColor()
{
       ScriptManager.RegisterStartupScript(this, GetType(), "changeProgressActiveStep", "alert("Hello")", true);
}

以上功能在用户控件中。当页面被加载并从 web 表单中单击一个按钮时,web 表单调用用户控件并让用户控件执行该功能。

页面加载时脚本运行良好,但随后单击按钮时不运行。

我尝试调试,似乎一切都很好,除了单击按钮时没有触发脚本(脚本管理器确实调用它)。

我尝试复制相同的函数,重命名并更改为“RegisterClientScriptBlock”,但也不起作用。

有人知道可能的原因吗?谢谢!

【问题讨论】:

  • 所以你在按钮点击时调用这个函数?
  • 这可能是您使用 ASP.Net AJAX 更新面板引起的。如果是这样,请告诉我,有一个解决方法!!!
  • 是的,页面加载和按钮点击。仅当页面加载有效时。我编辑问题使其更清楚。谢谢!
  • 是的,按钮在更新面板中,但用户控件不在

标签: javascript jquery .net


【解决方案1】:

当您使用更新面板时,渲染将不会发生,以便脚本块正常工作。作为一种解决方法,将以下代码放入页面加载中

ScriptManager.GetCurrent(Page).RegisterPostBackControl(urButton);

【讨论】:

  • 我试过刷新整个页面,还是不行。还是谢谢。
【解决方案2】:

我找到了答案,我应该使用 page 而不是这个:

 ScriptManager.RegisterStartupScript(page, GetType(), "changeProgressActiveStep", "alert("Hello")", true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多