我目前正在尝试将“colResizable”用于位于AJAX UpdatePanel内的GridView。在第一次加载时,它运行良好,但每当UpdatePanel更新时,它都会停止。
我知道这是由全面刷新pannel引起的,这意味着初始化添加的所有内容都不会被添加回来。
我尝试过“add_endRequest”解决方案
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
$(".GridViewStyle").colResizable({ liveDrag: true });
}
但是,它过早被调用,并没有解决我的问题。
我已经阅读了“.live()”方法,但我不明白如何将其用于初始化。对于像“鼠标悬停”这样的事件,我看到它是如何使用的,而且非常简单......但是,对于inits,我没有得到它。
我目前的启动线是:
$(document).ready(function () {
$(".GridViewStyle").colResizable({ liveDrag: true });
});
遵循“鼠标悬停”例子,但我无法弄清楚要连接哪个事件,因为文档没有列出任何类似“加载”的内容。如果确实如此,我会用这样的东西......
$(".GridViewStyle").live("load", function () { $(".GridViewStyle").colResizable({ liveDrag: true }); });
我四处搜寻,但没有找到适合我需要的东西。我是jQuery的新手,所以我可能没有使用正确的词汇/概念。
答案 0 :(得分:0)
.live()已弃用,请尝试使用jQuery的.on()方法:
$(document).on("change", $('.GridViewStyle'), function() {
$(this).colResizable({ liveDrag: true });
});
此外,您可能希望在初始化程序中设置postbackSafe: true
以在回发期间保持列宽更改。
答案 1 :(得分:0)
您可以使用pageLoaded
的{{1}}事件代替PageRequestManager
。看看这个事件文档:
在页面上的所有内容因同步或异步回发而刷新后引发。
此外,在此事件处理程序中,只有在创建或更新了GridView控件所在的UpdatePanel时,才可以应用colResizable插件。这允许您避免在某些其他UpdatePanel中可能由控件引发的每个异步回发上的冗余插件初始化调用
endRequest
此外,使用此脚本,您可以从document.ready处理程序中删除插件初始化,因为此脚本将在首页加载以及每次异步回发时执行