我正在使用Eric Hynds’ jQuery作为多选列表。我已经在后面的代码中动态创建了控件,并且可以成功绑定到它。
源代码如下:
<div class="multiselectlist">
<select id="MainContent_List" multiple="multiple" name="ctl00$MainContent$List">
</div>
动态控件位于更新面板中。当我点击一个按钮时,它会进行部分回发,并且会丢失与之关联的jQuery功能。
我认为我需要“重新注册脚本”所以我这样做了:
ScriptManager.RegisterClientScriptInclude(this, GetType(), "multiselect", Page.ResolveClientUrl("../../Assets/Scripts/jquery.multiselect.min.js"));
不幸的是没有任何反应。我很确定这是没有运行的JavaScript。我没有正确注册javascript吗?
答案 0 :(得分:1)
尝试重新初始化多选列表,如下所示
$.ajaxStop(function(){
$("#MainContent_List").multiselect();
});
答案 1 :(得分:0)
如果我的理解是正确的,您只需要将JQuery Multiselect重新绑定到select
控件。
这是因为每次发布部分帖子时都会重新呈现UpdatePanel
的内容,这意味着每个帖子都会删除并重新创建DOM元素
为了实现目标,只需重新绑定事件,如下所示:
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (a, e) {
// place here the re-initialization of your multiselect plugin
});
此外,您可以使用shortcut
功能:
function pageLoad() {
// place here the re-initialization of your multiselect plugin
}