以下代碼在環境:Microsoft Visual Studio 2005 (Service Pack1)下測試通過,目前也應用於項目中,感覺還行
此應用有三個窗口:
第一、Windows1.ASPx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Windows1.ASPx.cs" Inherits="TaoNet.ClIEnt.Web.Windows1" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">

<html XMLns="http://www.w3.org/1999/xHtml">

<head id="Head1" runat="server">

<title>WebForm1</title>

</head>

<body ms_positioning="GridLayout">

<div align="center">

<form id="Form1" runat="server" method="post">

<ASP:Label ID="Label1" runat="server" Font-Bold="true">

從當前頁面打開新窗口,並把變量傳遞到新窗口的例子,可以多次打開提交。

</ASP:Label><br>

<br>

<asp:TextBox ID="TextBox1" runat="server" Width="600px">這是初始值,將被傳遞到新窗口。</ASP:TextBox><br>

<br>

<ASP:Button ID="Button1" runat="server" Text="打開窗口" Width="96px" /></form>

</div>

</body>

</Html>

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;


namespace TaoNet.ClIEnt.Web


public partial class Windows1 : System.Web.UI.Page


...{

protected void Page_Load(object sender, EventArgs e)


...{


int intWidth = 500;

int intHeight = 400;

string vbCrLf = " ";

// 在此處放置用戶代碼以初始化頁面

if (!IsClientScriptBlockRegistered("clIEntScript"))


...{

string strScript = "<script>" + vbCrLf;

strScript += "function OpenWin(){" + vbCrLf;

strScript += "var str=window.showModalDialog(''Windows2.ASPx'',document.Form1.TextBox1.value,''dialogWidth=" + intWidth + "px;dialogHeight=" + intHeight + "px'',''scroll:yes'')" + vbCr

strScript += "if(str!=null) document.Form1.TextBox1.value=str" + vbCrLf;

strScript += "}" + vbCrLf;

strScript += "</script>" + vbCrLf;

RegisterClientScriptBlock("clIEntScript", strScript);

}

Button1.Attributes.Add("onclick", "OpenWin()");

//window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");

}

}

}

//------------------------------------------------------------------------------

// <auto-generated>

// 此代碼由工具生成。

// 運行庫版本:2.0.50727.42

//

// 對此文件的更改可能會導致不正確的行為,並且如果

// 重新生成代碼,這些更改將會丟失。

// </auto-generated>

//------------------------------------------------------------------------------



namespace TaoNet.ClIEnt.Web ...{


/**//// <summary>

/// Windows1 類。

/// </summary>

/// <remarks>

/// 自動生成的類。

/// </remarks>


public partial class Windows1 ...{


/**//// <summary>

/// Head1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.HtmlControls.HtmlHead Head1;


/**//// <summary>

/// Form1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.HtmlControls.HtmlForm Form1;


/**//// <summary>

/// Label1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.WebControls.Label Label1;


/**//// <summary>

/// TextBox1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.WebControls.TextBox TextBox1;


/**//// <summary>

/// Button1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.WebControls.Button Button1;

}

}
第二、Windows2.ASPx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Windows2.ASPx.cs" Inherits="TaoNet.ClIEnt.Web.Windows2" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">

<html XMLns="http://www.w3.org/1999/xHtml">

<head id="Head1" runat="server">

<title>WebForm2</title>

</head>

<frameset rows="0,*">

<frame src="about:blank">

<frame src="Windows3.ASPx">

</frameset>

</Html>

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;


namespace TaoNet.ClIEnt.Web


...{

public partial class Windows2 : System.Web.UI.Page


...{

protected void Page_Load(object sender, EventArgs e)


...{


}

}

}

//------------------------------------------------------------------------------

// <auto-generated>

// 此代碼由工具生成。

// 運行庫版本:2.0.50727.42

//

// 對此文件的更改可能會導致不正確的行為,並且如果

// 重新生成代碼,這些更改將會丟失。

// </auto-generated>

//------------------------------------------------------------------------------



namespace TaoNet.ClIEnt.Web ...{


/**//// <summary>

/// Windows2 類。

/// </summary>

/// <remarks>

/// 自動生成的類。

/// </remarks>


public partial class Windows2 ...{


/**//// <summary>

/// Head1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.HtmlControls.HtmlHead Head1;

}

}
第二、Windows3.ASPx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Windows3.ASPx.cs" Inherits="TaoNet.ClIEnt.Web.Windows3" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd">

<html XMLns="http://www.w3.org/1999/xHtml">

<head id="Head1" runat="server">

<title>WebForm3</title>

</head>

<body id="MyBody" runat="server" ms_positioning="GridLayout">

<form id="Form1" runat="server" method="post">

<asp:Label ID="Label1" runat="server">請輸入您的大名:</ASP:Label><br>

<br>

<asp:TextBox ID="TextBox1" runat="server" Width="558"></ASP:TextBox><br>

<br>

<ASP:Button ID="Button1" runat="server" Text=" 提 交 " OnClick="Button1_Click" />

</form>

</body>

</Html>


using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;


namespace TaoNet.ClIEnt.Web


...{

public partial class Windows3 : System.Web.UI.Page


...{

protected void Page_Load(object sender, EventArgs e)


...{

string vbCrLf = " ";

if (IsPostBack)


...{

string strScript = "<script>" + vbCrLf;

strScript += "window.parent.returnValue=''" + TextBox1.Text.Replace("''", "''") + "''" + vbCrLf;

strScript += "window.parent.close()" + vbCrLf;

strScript += "</script>" + vbCrLf;

if (!IsClientScriptBlockRegistered("clIEntScript"))

RegisterClientScriptBlock("clIEntScript", strScript);


if (!IsPostBack)

MyBody.Attributes.Add("onload", "document.Form1.TextBox1.value=window.parent.dialogArguments");

}

}


protected void Button1_Click(object sender, EventArgs e)


...{


}

}

}

//------------------------------------------------------------------------------

// <auto-generated>

// 此代碼由工具生成。

// 運行庫版本:2.0.50727.42

//

// 對此文件的更改可能會導致不正確的行為,並且如果

// 重新生成代碼,這些更改將會丟失。

// </auto-generated>

//------------------------------------------------------------------------------



namespace TaoNet.ClIEnt.Web ...{


/**//// <summary>

/// Windows3 類。

/// </summary>

/// <remarks>

/// 自動生成的類。

/// </remarks>


public partial class Windows3 ...{


/**//// <summary>

/// Head1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.HtmlControls.HtmlHead Head1;


/**//// <summary>

/// MyBody 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.HtmlControls.HtmlGenericControl MyBody;


/**//// <summary>

/// Form1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.HtmlControls.HtmlForm Form1;


/**//// <summary>

/// Label1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.WebControls.Label Label1;


/**//// <summary>

/// TextBox1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.WebControls.TextBox TextBox1;


/**//// <summary>

/// Button1 控件。

/// </summary>

/// <remarks>

/// 自動生成的字段。

/// 要進行修改,請將字段聲明從設計器文件移到代碼隱藏文件。

/// </remarks>

protected global::System.Web.UI.WebControls.Button Button1;

}

}