如何点击按钮弹出新窗口,输入数据后返回并刷新页面?(C#代码)

翻译自孟宪会之精彩世界的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" %>

<%@ 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" %> <%@ 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>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="ShowModalTest.WebForm1" %>
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>
posted @ 2005-12-19 13:27  torome  阅读(1687)  评论(0编辑  收藏  举报