【问题标题】:Rewire client side events wired by jQuery on reloading the UpdatePanel在重新加载 UpdatePanel 时重新连接由 jQuery 连接的客户端事件
【发布时间】:2011-02-17 09:42:30
【问题描述】:

我在更新面板中有一个中继器,在中继器中有几个面板。 这些面板在方式上有所不同,但它们有一个共同的 css 类,所以我将它们的 onclick、onmouseover 和 onmouseout 事件与 $(document).ready 上的 jQuery 连接起来

但是在更新面板更新的部分回发后,这些电线丢失了,我找不到将这些电线放回的地方。

$(document).ready(function () {
    $(".actionicon_normal").click(function () {
        ClickActionIcon($(this));
    });
    $(".actionicon_normal").hover(function () {
        HoverActionIcon($(this));
    }, function () {
        OutActionIcon($(this));
    });
    $(".actionicon_normal").each(function (i) {
        var chk = $(this).find("input");
        var backpos = $(this).css("background-position").split(" ");
        if (chk.attr("checked")) {
            $(this).css("background-position", backpos[0] + " -" + $(this).height() + "px");
        }
    });
})

如您所见,我在 $(".actionicon_normal").each 中修改了背景位置。 更新更新面板后,我需要一个地方来运行它。 我尝试使用 .ajaxComplete 进行试验,但找不到合适的解决方案。

另一种方法是将这些连接到代码隐藏中,但我无法获取所有操作图标,因为 ItemDataBind 仅在首次加载时才保存,而且即使在 ItemCreated 中我也无法获取所有这些div 具有相同的 css 类,而且 div 中有一个 CheckBox,我需要检查选中的值,但我也无法做到这一点。因此,如果服务器端是更好的方法,我需要很多帮助。

【问题讨论】:

    标签: c# jquery ajax updatepanel webforms


    【解决方案1】:

    此页面可能会有所帮助: http://msdn.microsoft.com/en-us/library/bb386417.aspx

    每次页面加载时脚本管理器都会触发以下方法,您只关心部分回发所以它也检查这个

    function pageLoad(sender, args) {
            if (args.get_isPartialLoad()) {
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-27
      • 2013-12-31
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 2019-03-07
      • 2022-01-22
      • 2020-09-05
      相关资源
      最近更新 更多