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

私の理解が正しければ、JQueryMultiselectを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
}
于 2012-10-24T02:44:13.513 に答える