0

私はこの問題を抱えています。ページ全体を更新パネルに入れました。いくつかASP:PannelVisible="false"属性があります。

asp:RadioButtonListWithを含むもののうちの1つYes,No

それらのPage_Load()1つで、ラジオボタンリストを使用してユーザーに表示されます。彼が を押すYessと、別のパネルが表示されます。

問題は、私が含むパネルを持っていること asp:DropDownListです

CssClass="span6 chzn-select">

したがって、このパネルが表示されると、DropDownList css消える!. 更新パネルのポストバックに問題があることは知っていますが、これを解決する方法がわかりません。また、DropDownList選択されたという JQuery ファイルからスタイルを取得しますが、どのページにもスクリプトがありません。css クラスを配置するだけで、そのスタイルになります。前もって感謝します。

4

3 に答える 3

0

Chosen のようなプラグインは単なる CSS ではありません。彼らは JavaScript を使用してそのクラスの選択要素を見つけ、適切にスタイルできる別のマークアップでそれらを拡張/置換します。

<select>UpdatePanel が更新されたときに CSS が失われているわけではありませんが、Chosen クラスを持つ通常の要素を見つけて再拡張するために Chosen JavaScript が実行されていません。

次のコードでそれらを再初期化できるはずです。

$('.chzn-select').chosen();

ASP.NET が規則によって呼び出す pageLoad() 関数に入れることで、ページの読み込み時と UpdatePanel の更新ごとに実行できます。

function pageLoad() {
  $('.chzn-select').chosen();
}
于 2013-08-22T02:26:13.947 に答える
0

JavaScript によって要素に加えられた変更 (スタイルの追加など) は、部分的なポストバックであっても、ポストバックを通じて保持されません。ポストバック後にすべての JavaScript 初期化をやり直す必要があります。

部分的なポストバックを完了するためのコールバックを追加する JavaScript スニペットを次に示します。これを使用して、UI をセットアップできます。

<script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(EndRequest);

    function EndRequest(sender, args) {
    }
</script>

この質問から抜粋したスニペット。

于 2013-08-21T17:41:13.290 に答える