代码之家  ›  专栏  ›  技术社区  ›  andleer

jquery在ASP.NET更新面板之外

  •  2
  • andleer  · 技术社区  · 15 年前

    我有一个正在使用和更新面板的ASP.NET页面,通过script src=abc.js标记包含了一些javascript。我尝试使用$(document).ready和$(window).load加载我的javascript。两者都在初始加载时激发,但在更新面板回发时未能激发。

    无论更新面板是什么,我都可以连接客户端来触发吗?我知道我可以注入脚本服务器端,但理想情况下我希望在所有客户端都这样做,并连接第一次需要的东西。

    2 回复  |  直到 13 年前
        1
  •  3
  •   Kelsey    15 年前

    如果您想注册一些代码,即使在 UpdatePanel 回发时,需要注册函数以便在发生更新时调用。通过执行以下操作,可以注册要运行的javascript函数:

    // Javascript
    function InitializeScripts()
    {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_pageLoaded(YourJavascriptFunctionYouWantToRun);
    }
    

    这个 PageRequestManager 将在更新面板刷新时调用javascript函数。

    我过去用这个来触发 UpDATEPANEL 由于计时器而触发刷新。刷新完成后,脚本将自动运行以根据显示的数据更新其他控件。

    看到这个 MSDN article 更多信息。

        2
  •  0
  •   user1140374    13 年前

    在您的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()">