none
ModalPopupExtenderで、別ページの内容を表示したい RRS feed

  • 質問

  • ASP.NET AJAXのModalPopupExtenderを使用して、別ページ(他のWebフォーム)の内容を

    表示したいのですが、方法はあるでしょうか?

     

    ModalPopupExtenderの使用方法を見ると、ポップアップの呼び出し元画面にあらかじめ表示したい

    内容をPanelコントロールの中に書いておかないといけないようで、これでは呼び出し元画面の

    HTML量がかなり大きくなってしまいます。(10個くらいポップアップを使用したいため)

     

    例えば「LITBox」というJSライブラリでは、以下のような方法で別ページの内容をポップアップ表示できる

    ようなのですが、これと同じようなことをASP.NET AJAXの機能でできないでしょうか?

    (あまりいろいろなライブラリを使用せず、なるべく方式を統一したいため)

     

    new LITBox('http://www.yahoo.co.jp',{type:'window',overlay:true});

     

    宜しくお願いします。

    2008年8月8日 1:31

回答

  • fujid さん こんにちは。

     

    ご期待に添えるかわかりませんが。AjaxControlToolkitが使える前提で書いています。

     

    Code Snippet

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:ScriptManager runat="server" ID="ScriptManager1"></asp:ScriptManager>
            <div>
                <asp:Panel runat="server" ID="pnlModalPage" style="display:none;">
                    <div style="background-color:Blue;">
                    <h1 style="background-color:Aqua;">モーダルPopup<asp:Button runat="server" ID="btnClose" Text="close" /></h1>               
                    <iframe src="" frameborder="0" id="changeframe">
                        iframe is not supported
                    </iframe>
                    </div>
                </asp:Panel>
                <cc1:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="Button2"
                    PopupControlID="pnlModalPage" CancelControlID="" OkControlID="btnClose">
                </cc1:ModalPopupExtender>
                <asp:Button runat="server" ID="btnShowFrame" OnClientClick="showPopup();return false;" Text="Click Me!!" />
                <asp:Button runat="server" ID="Button2" Text="ダミー" style="display:none;" />           
            </div>
            <script type="text/javascript">
                function showPopup(){
                    var frm = $get("changeframe");
                    frm.src = "http://jp.msn.com/";
                    var p = $find("ModalPopupExtender2");
                    if(p){
                        p.show();
                    }
                }
            </script>
        </form>
    </body>
    </html>

     

     

    もっとうまい方法があるかも知れませんが一応作ってみました。
    2008年8月8日 2:33