导航

翻译自孟宪会之精彩世界的VB.NET代码
http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4

Webform1.aspx

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="ShowModalTest.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 
<HEAD>
  
<title>WebForm1</title>
  
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
  
<meta content="C#" name="CODE_LANGUAGE">
  
<meta content="JavaScript" name="vs_defaultClientScript">
  
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
 
</HEAD>
 
<body MS_POSITIONING="GridLayout">
  
<div align="center">
   
<form id="Form1" method="post" runat="server">
    
<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" Width="96px" Text="打开窗口2"></asp:button>
    
<asp:button id="Button2" runat="server" Width="96px" Text="打开窗口4"></asp:button></form>
  
</div>
 
</body>
</HTML>


Webform1.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls; 
namespace ShowModalTest
{
 
/// <summary>
 
/// WebForm1 的摘要说明。
 
/// </summary>
 public class WebForm1 : System.Web.UI.Page
 {
  
protected System.Web.UI.WebControls.Label Label1;
  
protected System.Web.UI.WebControls.TextBox TextBox1;
  
protected System.Web.UI.HtmlControls.HtmlForm Form1;
  
protected System.Web.UI.WebControls.Button Button1;
 
  
private void Page_Load(object sender, System.EventArgs e)
  {
   
// 在此处放置用户代码以初始化页面
   
// 在此处放置用户代码以初始化页面
    string strScript= "\n";
    
if (!IsClientScriptBlockRegistered("clientScript")) 
    {
     strScript 
= "<script>\n";
     strScript 
+= "function OpenWin(){\n";
     strScript 
+= "var str=window.showModalDialog('WebForm2.aspx',document.Form1.TextBox1.value,'help:no')\n";
     strScript 
+= "if(str!=null)  document.Form1.TextBox1.value=str\n";
     strScript 
+= "}\n";
     strScript 
+= "</script>\n";
     RegisterClientScriptBlock(
"clientScript", strScript);
    }
     
if (!IsClientScriptBlockRegistered("clientScript2")) 
    {
     strScript 
= "<script>\n";
     strScript 
+= "function OpenWin2(){\n";
     strScript 
+= "var str=window.showModalDialog('WebForm4.aspx',document.Form1.TextBox1.value,'help:no')\n";
     strScript 
+= "if(str!=null)  document.Form1.TextBox1.value=str\n";
     strScript 
+= "}\n";
     strScript 
+= "</script>\n";
     RegisterClientScriptBlock(
"clientScript2", strScript);
    }
    Button1.Attributes.Add(
"onclick""OpenWin()");
    Button2.Attributes.Add(
"onclick""OpenWin2()"); 

  } 

  
#region Web 窗体设计器生成的代码
  
override protected void OnInit(EventArgs e)
  {
   
//
   
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   
//
   InitializeComponent();
   
base.OnInit(e);
  }
  
  
/// <summary>
  
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
  
/// 此方法的内容。
  
/// </summary>
  private void InitializeComponent()
  {    
   
this.Load += new System.EventHandler(this.Page_Load); 

  }
  
#endregion
 }
}



Webform2.aspx

 <%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="ShowModalTest.WebForm2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 
<HEAD>
  
<TITLE>WebForm2</TITLE>
  
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  
<meta name="CODE_LANGUAGE" Content="C#">
  
<meta name="vs_defaultClientScript" content="JavaScript">
  
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 
</HEAD>
 
<frameset rows="0,*">
  
<frame src="about:blank">
  
<frame src="WebForm3.aspx">
 
</frameset>
</HTML>


WebForm3.aspx

<%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="ShowModalTest.WebForm3" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 
<HEAD>
  
<title>WebForm3</title>
  
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  
<meta name="CODE_LANGUAGE" Content="C#">
  
<meta name="vs_defaultClientScript" content="JavaScript">
  
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 
</HEAD>
 
<body MS_POSITIONING="GridLayout" id="MyBody" runat="server">
  
<form id="Form1" method="post" runat="server">
   
<asp:Label id="Label1" runat="server">请输入您的大名:</asp:Label><br>
   
<br>
   
<asp:TextBox id="TextBox1" runat="server" Width="320px"></asp:TextBox><br>
   
<br>
   
<asp:Button id="Button1" runat="server" Text=" 提  交 "></asp:Button>
  
</form>
 
</body>
</HTML>


WebForm3.aspx.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls; 

namespace ShowModalTest
{
 
/// <summary>
 
/// WebForm3 的摘要说明。
 
/// </summary>
 public class WebForm3 : System.Web.UI.Page
 {
  
protected System.Web.UI.WebControls.Label Label1;
  
protected System.Web.UI.WebControls.TextBox TextBox1;
  
protected System.Web.UI.WebControls.Button Button1;
  
protected System.Web.UI.HtmlControls.HtmlControl MyBody;
  
private void Page_Load(object sender, System.EventArgs e)
  {
   
// 在此处放置用户代码以初始化页面
   if(IsPostBack)
   {
    
string strScript = "<script>\n";
    strScript 
+= "window.parent.returnValue='" + TextBox1.Text.Replace("'""\'"+ "'\n";
    strScript 
+= "window.parent.close()\n";
    strScript 
+= "</script>\n";
    
if (!IsClientScriptBlockRegistered("clientScript"))
     RegisterClientScriptBlock(
"clientScript", strScript);
   }
   
else
   {
    MyBody.Attributes.Add(
"onload""document.Form1.TextBox1.value=window.parent.dialogArguments");
   }
     } 

  
#region Web 窗体设计器生成的代码
  
override protected void OnInit(EventArgs e)
  {
   
//
   
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   
//
   InitializeComponent();
   
base.OnInit(e);
  }
  
  
/// <summary>
  
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
  
/// 此方法的内容。
  
/// </summary>
  private void InitializeComponent()
  {    
   
this.Load += new System.EventHandler(this.Page_Load); 

  }
  
#endregion
 }
}

 

Webform4.aspx
<%@ Page language="c#" Codebehind="WebForm4.aspx.cs" AutoEventWireup="false" Inherits="ShowModalTest.WebForm4" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
 
<HEAD>
  
<title>WebForm4</title>
  
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  
<meta name="CODE_LANGUAGE" Content="C#">
  
<meta name="vs_defaultClientScript" content="JavaScript">
  
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
 
</HEAD>
 
<body MS_POSITIONING="GridLayout">
  
<form id="Form1" method="post" runat="server">
   
<iframe frameborder="no" src='WebForm3.aspx' style="WIDTH: 368px; HEIGHT: 192px"></iframe>
  
</form>
 
</body>
</HTML>