1

我正在使用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吗?

4

2 回答 2

1

尝试重新初始化多选列表,如下所示

$.ajaxStop(function(){
    $("#MainContent_List").multiselect();
});
于 2012-10-24T01:16:21.417 回答
0

如果我的理解是正确的,您只需将 JQuery Multiselect 重新绑定到select控件。

这是因为UpdatePanel每次出现部分帖子时都会重新渲染 an 的内容,这意味着在每个帖子上都会删除并重新创建 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
}
于 2012-10-24T02:44:13.513 回答