jQuery UpdatePanels初始化

jQuery UpdatePanels初始化,jquery,asp.net,updatepanel,Jquery,Asp.net,Updatepanel,我目前正在尝试对位于AJAX UpdatePanel中的GridView使用“ColResizeable”。在第一次加载时,它工作得很好,但只要更新了UpdatePanel,它就会停止 我知道这是由面板的完全刷新引起的,这意味着通过初始化添加的所有内容都不会被添加回来 我尝试了“添加请求”解决方案 但是,它被叫得太早,不能解决我的问题 我已经读过“.live()”方法,但我不明白如何使用它进行初始化。对于像“mouseover”这样的事件,我看到了它是如何使用的,它非常简单。。。然而,对于ini

我目前正在尝试对位于AJAX UpdatePanel中的GridView使用“ColResizeable”。在第一次加载时,它工作得很好,但只要更新了UpdatePanel,它就会停止

我知道这是由面板的完全刷新引起的,这意味着通过初始化添加的所有内容都不会被添加回来

我尝试了“添加请求”解决方案

但是,它被叫得太早,不能解决我的问题

我已经读过“.live()”方法,但我不明白如何使用它进行初始化。对于像“mouseover”这样的事件,我看到了它是如何使用的,它非常简单。。。然而,对于inits,我不明白

我当前的初始化行是:

$(document).ready(function () {
    $(".GridViewStyle").colResizable({ liveDrag: true });
});
下面是“mouseover”示例,但我无法确定要连接到哪个事件,因为文档中没有列出类似“Load”的内容。如果是的话,我会用这样的东西

$(".GridViewStyle").live("load", function () { $(".GridViewStyle").colResizable({ liveDrag: true }); });
我到处找了,但没有找到适合我需要的东西。我对jQuery非常陌生,因此可能没有使用正确的词汇表/概念

.live()已被弃用,请尝试改用jQuery的方法:

$(document).on("change", $('.GridViewStyle'), function() {
    $(this).colResizable({ liveDrag: true });
});

此外,您可能希望在初始值设定项中设置
postbackSafe:true
,以便在回发期间保持列宽的更改。

您可以使用
PageRequestManager
pageLoaded
事件,而不是
endRequest
。请参阅此事件文档:

由于同步或异步回发而刷新页面上的所有内容后引发

此外,在此事件处理程序中,只有在创建或更新了GridView控件所在的UpdatePanel时,才可以应用ColResizeble插件。这允许您避免对每个异步回发进行冗余的插件初始化调用,这些调用可能由其他一些UpdatePanel中的控件引发

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(initializeResizeable);

function initializeResizeable(sender, args) {
    var context = $(args.get_panelsCreated()).add(args.get_panelsUpdated());
    $(".GridViewStyle", context).colResizable({ liveDrag: true }); 
}
此外,使用此脚本,您可以从document.ready处理程序中删除插件初始化,因为此脚本将在第一页加载以及每次异步回发时执行

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(initializeResizeable);

function initializeResizeable(sender, args) {
    var context = $(args.get_panelsCreated()).add(args.get_panelsUpdated());
    $(".GridViewStyle", context).colResizable({ liveDrag: true }); 
}