【问题标题】:Run JQuery after Specific updatePanel fires在特定 updatePanel 触发后运行 JQuery
【发布时间】:2011-11-29 22:34:45
【问题描述】:

我有一个脚本在更新面板触发后运行: Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 功能 EndRequestHandler(发件人,参数){ initDropSearch(); } 函数 initDropSearch() {

    var search = jQuery("#searchBar div.productSearchFilter");

    if (search.length > 0) {

        var grid = search.find("table.gridView");

        if (search.next().val() != "open") {

            search.animate({
                height: ['toggle', 'easeOutBounce'],
                opacity: 'toggle'
            }, 1000)

            .next().val("open");

        } else {

            search.show();

        }
    }
}

加载搜索结果后,容器会下降并弹起。

它可以完美运行 - 直到在同一页面上触发另一个更新面板 - 在这种情况下,搜索面板会再次打开。

我需要做的只是在特定的 updatePanel 触发时运行脚本。

有没有办法做到这一点?

【问题讨论】:

    标签: jquery .net updatepanel


    【解决方案1】:

    senderargs 是否包含有关触发 EndRequestHandler 的 UpdatePanel 的数据?

    如果是这样,只需检查是哪一个触发了它,然后仅根据它触发您的代码。

    function EndRequestHandler(sender, args) {
        if (((UpdatePanel)sender).ID == "UpdatePanel1") {
            initDropSearch(); 
        }
    }
    

    【讨论】:

    • 我认为@Chris 提供的代码是javascript。所以类型转换不可用。但我认为您的其余答案是正确的,其中一个对象包含有关触发事件的 UpdatePanel 的信息。
    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多