【ASP.NET】【JS】ASP.NETでshowModalDialog()を利用したモーダルの子画面ダイアログを表示する(2)

前置き

 * 以下の方法より、シンプルな方法もある。ただし、値の受渡しは1つのみ。
http://blogs.yahoo.co.jp/dk521123/27710267.html
 * 基本、以下の方法と同じ。
http://blogs.yahoo.co.jp/dk521123/27419535.html

サンプル2

親画面・デザイン:SampleMain.aspx

サンプル1と同じ

親画面・コードビハインド:SampleMain.aspx.vb

Public Class SampleMain
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Button1.OnClientClick = _
            "showModal('" & Me.TextBox1.ClientID & "'); return false;"
    End Sub
End Class

子画面・デザイン:SampleModal.aspx

サンプル1と同じ

子画面・デザイン:SampleModal.aspx.vb

Public Class SampleModal
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Button1.OnClientClick = "closeModal('" & Me.TextBox1.ClientID & "');"
    End Sub
End Class

JScript1.js

function showModal(targetID) {
    var textObj = document.getElementById(targetID);
    var textValue = textObj.value;

    window.dialogArguments = textValue;
    var returnValue = window.showModalDialog(
        "SampleModal.aspx",
        window,
        "dialogWidth=400px;dialogHeight=300px");
    if (returnValue != null) {
        textObj.value = returnValue;
    }
}
function init(targetID) {
    var args = window.dialogArguments.dialogArguments;
    var textObj = document.getElementById(targetID);
    textObj.value = args;
}

function closeModal(targetID) {
    var textObj = document.getElementById(targetID);
    window.returnValue = textObj.value;
    self.close();
}

関連記事

ASP.NETでshowModalDialogを使わずに、モーダル表示 ~Step1~

http://blogs.yahoo.co.jp/dk521123/28248646.html

ASP.NET AJAX Control Toolkit (ModalPopupExtender, モーダル編)

http://blogs.yahoo.co.jp/dk521123/folder/982850.html

ASP.NETでshowModalDialog()を利用したモーダルの子画面ダイアログを表示する(1)

http://blogs.yahoo.co.jp/dk521123/27710267.html

ASP.NETでshowModalDialog()を利用したモーダルの子画面ダイアログを表示する(2)

http://blogs.yahoo.co.jp/dk521123/27723613.html

モーダルの子画面ダイアログを作成する

http://blogs.yahoo.co.jp/dk521123/27419535.html

カレンダーコントロール(Calendar)

http://blogs.yahoo.co.jp/dk521123/26916160.html