1

私のASP.NETWebフォームページには、ModalPopupExtenderJavaScriptで表示されるものがあります。

$.ajax({
    // full ajax request shortened
    type: "POST",
    success: function (msg) {
        $("#profileTitleLabel").html(msg.d.TitleEncoded);
        $("#profileTextLabel").html(msg.d.BodyEncoded);

        $find('profileTextModalPopupExtender').show();
    },
    error: function (jqXHR, textStatus, errorThrown) {
    }
});

最初は中央に配置もサイズ設定もされていませんが、その後の呼び出しでは問題ありません(Chrome、Firefox、IE9)。私はそれがそれを閉じるときに行われるポストバック(UpdatePanel部分的な更新)と関係があると思います。

サーバー側の呼び出しを使用せずに、最初にサイズを修正するために手動でサイズ設定をトリガーするにはどうすればよいShowですか?initialize以前に呼び出しshowてみましたが、クライアントオブジェクトのメソッドを参照しましたが、まだ解決策が見つかりません。

ポップアップに一致したスタイルは次のdivとおりです。

height: auto;    // matched css classes
width: auto;
max-height: 80%;
max-width: 90%;
min-width: 50%;
overflow: auto;
padding: 10px;
position: fixed; // element CSS
z-index: 100001;
left: 160.5px;
top: 157.5px;
4

1 に答える 1

1

ポップアップが正しく表示される回避策を見つけました。

$find('profileTextModalPopupExtender').show();
$find('profileTextModalPopupExtender')._layout();
$find('profileTextModalPopupExtender').show();

これにはコードの臭いがあることに同意します。しかし、私はより良い解決策を見つけることができませんでした(私はまだ提案を受け入れています)。_layout私は特に、自分で1回、。で2回(連続して!)呼び出されることが嫌いですshow

于 2012-08-28T09:17:33.070 に答える