【问题标题】:Running Javascript after update panel refresh [duplicate]更新面板刷新后运行 Javascript [重复]
【发布时间】:2011-10-21 01:22:45
【问题描述】:

我如何在更新面板刚刚刷新后加载 javascript 命令(如 onload 或 onclick 等)。

【问题讨论】:

  • ScriptManager.RegisterStartupScript(yourUpdatePanelName, this.GetType(), "MyActionSampleName", "alert('test')", true);

标签: c# javascript asp.net


【解决方案1】:

将这些行嵌入到您的 javascript 标记中

function foo()
{
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
}
function endRequestHandler(sender, args)
{
    // Do your stuff
    alert('Update Panel routine is now complete');
}

然后,把它放在你的身体标签上

<body onload="foo()">

【讨论】:

  • 在发布多个问题的复制和粘贴样板/逐字答案时要小心,这些往往会被社区标记为“垃圾邮件”。如果您这样做,则通常意味着问题是重复的,因此请标记它们。
【解决方案2】:
ScriptManager.RegisterClientScriptBlock(upPanel, upPanel.GetType(), "alert('hello world')", true);

您必须在部分回发时调用它。

【讨论】:

  • 澄清一下,这种解决方案最终会导致脚本块溢出并最终导致浏览器崩溃,因为它会在每次请求时获取一个新的脚本块。
【解决方案3】:

您可以使用ScriptManager。我认为ScriptManager.RegisterClientScriptBlock 应该很有用。然后您可以在页面加载后执行 JS。其他选项包括JQuery.live

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-14
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2017-03-17
    • 2012-07-09
    相关资源
    最近更新 更多