0

ポップアップでユーザーコントロールを読み込もうとしていますが、ホームページの読み込み時間を短縮するために起動した後、Ajax ModalPopUp Extenderを使用することは可能ですか、それとも他に推奨されるポップアップがありますか。ユーザーコントロールまたは同じものの代わりにフレームを使用できますか?

4

2 に答える 2

1

ASP.NET を使用しているので、簡単なオプションの 1 つは、jQuery UI と単純な div/iframe をポップアップとして使用することです。

JavaScript:

<script type="text/javascript">
    function showPanel(panelID, pageUrl) {
        $panel = $('#' + panelID);

        $panel.html('<iframe src="' + pageUrl + '"></iframe>');
        $panel.dialog();
    }
</script>

ASPX:

<asp:LinkButton runat="server" id="lbtn1" OnClientClick="showPanel('dialog', '/myControlPage.aspx');return false;">
  Show Popup
</asp:LinkButton>
<div id="dialog">
</div>

ASPX コントロールが表示専用の場合、AJAX を使用してページのコンテンツを取得できます。

<script type="text/javascript">
function showPanel(panelID, pageUrl) {
    $panel = $('#' + panelID);

    $.ajax({
        url: pageUrl,
        type: "GET",
        dataType: "html",
        async: false,
        data: {},
        success: function (obj) {
            $panel.html(obj).html();
            $panel.dialog();
        }
    });
}
</script>

ただし、これにより、埋め込みページが「正しく」ポストバックする機能が制限されます。ポストバックは内部ページのみを表示し、ポストバックから戻ったときに「親」ページを完全に削除します。

于 2012-08-31T01:14:25.937 に答える
0

updatePanel を使用してこれを実現できます。

アップデートパネルのご紹介です

ユーザー コントロールを updatepanel 内にエンベロープし、visible false に設定します。コントロールを visible false に設定すると、コントロールがレンダリングされなくなり、読み込み時間に影響しなくなります。

その後、更新パネルで Postback トリガーを使用して、コントロールを true に表示し、その内容を表示できます。

タイマーを数ミリ秒後にロードするトリガーとして使用できます。ポストバックのタイマーを無効にします。これは、タイマーを使用して更新パネルを更新するチュートリアルです。

更新パネルのポストバックは ajax 経由で起動されます。これに必要なすべての JavaScript は、更新パネル コントロール自体によって生成されます。

これを使用する利点は、ユーザー コントロールが同じページ上にあり、ページ上の他のコントロールと対話できることです。

于 2012-08-31T03:37:59.460 に答える