以下代碼在環境: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;
}
}