我做了一个按钮目的就是弹出一个新的窗口用的是window.showModalDialog()方法。我也在子页面做了一个按钮目的是为了点击以后就可以关闭子窗口。我上网站去过了始终没有找到解决方法,请大虾们帮帮忙代码:
    父窗口的代码
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("<script language=javascript>window.showModalDialog('Default2.aspx','');</script>");
    }    子窗口代码
    protected void Button1_Click1(object sender, EventArgs e)
  {
     不知道怎么写!
   }

解决方案 »

  1.   

    window.close()Response.Write("<script language=javascript>window.close();</script>");
      

  2.   

    我这样写过了,他会弹出一个两个新的窗口。一个是全空白另外一个是Default2.aspx这个页面!
      

  3.   

    Response.Write("<script language=javascript>windwo.opener=null;window.close();</script>");
      

  4.   

    在default2.apsx上放个按钮
    给按钮写个脚本方法
    window.close()即可关闭default2.aspx
      

  5.   

    子窗口HTML: 
      <script type="text/javascript">
            function aa() { 
                  window.close();
            }
        </script> if (!IsPostBack)
            {
                Button1.Attributes.Add("onclick", "return aa()");        }
      

  6.   

    还可以直接改成HTML控件。
    <input id="Button1" onclick="window.close();" type="button" value="关闭" />
      

  7.   

    靠,这个是最简单的,也是最可行的!IE9、Firefox、Chrome下都可以。
      

  8.   


    在页面上加一个<base target=_self>再用Response.Write("<script language=javascript>window.close();</script>");
      

  9.   


     Response.Write("<script>window.opener=null;window.open('','_self');window.close();</script>");
      

  10.   

    <base target=_self>是在子窗口上加还是在父窗口上加!
      

  11.   

    <script language="javascript" type="text/jscript">
        window.name="win"; <form id="form1" runat="server" target="win">加上这个就行了
      

  12.   

    要在父页面关闭子页面,就不应该使用模态对话框,直接window.open()就好了
      

  13.   

    看错了。。
    子页面关闭本身,   protected void Button1_Click1(object sender, EventArgs e)
      {
             Page.ClientScript.RegisterClientScriptBlock(Page.GetType(),"toClose", "window.close();", true);
       }
      

  14.   

    在父页面写
       protected void Button1_Click(object sender, EventArgs e)
        {
            ClientScript.RegisterStartupScript(GetType(), "method", "<script type='text/javascript'> window.showModalDialog('HTMLPage.htm',null,'dialogWidth=900px;dialogHeight=700px;resizable=no;menuba=no;location=no')</script>");
        }
    html上用iframe调用你要在弹出窗体的内容,
        <iframe id="Editor" name="Editor" src="Default2.aspx" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="height:700px;width:100%">
     子窗口代码
     protected void Button1_Click1(object sender, EventArgs e)
      {
         ClientScript.RegisterStartupScript(GetType(), "method", "<script type='text/javascript'>window.close();</script>'");
        }
    只能这么写,因为window.showModalDialog他弹出html页面,所以一切服务器按钮都失效
      

  15.   

    <iframe id="Editor" name="Editor" src="Default2.aspx" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" style="height:700px;width:100%">
      这个加在什么地方!
      

  16.   

    哥最后给你写个方法了,再不行就没了!
    子页面HTML写个方法:
     <script type="text/javascript">
            function aa() {
                self.close();
                return false;
            }
        </script>
    子页面cs代码:
      if (!IsPostBack)
            {
                Button1.Attributes.Add("onclick", "return aa();");        }
      

  17.   


    这个已经是完整的啊,JS里面加一句“window.name="win";”,给窗口个名字,Form的target="win"指定响应的窗口,就不会开新页面出来了。
      

  18.   

    shine_fly 你最后一个方法也不行!
      

  19.   

    xxoo2007  是写在子页面上的吗?
      

  20.   

    老子要骂人了!FK!你用的什么工具什么浏览器??这也不行那也不行的?上面里面很多方法都是可以的。你自己在做什么?这也不行,那也不行的!大家都测试下!哪里不行了????????<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %><!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 runat="server">
        <title></title>
        <script type="text/javascript">
            window.name = "win";
            function aa() {
                self.close();
                return false;
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server" target="win">
        <div>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Come On" />
            <input id="Button2" onclick="window.close();" type="button" value="button" />
        </div>
        </form>
    </body>
    </html>using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //Button1.Attributes.Add("onclick", "return aa();");// aa()方法调用,用此方法就屏蔽Button1_Click方法
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            Response.Write("<script language=javascript>self.close();</script>");
        }
    }
      

  21.   

    才开始已回复你说了,我自己在IE9、Firefox、Chrome三个不同内核的浏览器下测试都可以,360是IE内核,IE行为什么它个垃圾就不行?哥从不用360的任意一样东西,为你我专门装了个360,我不知道哪里不行了?
      

  22.   

    要么把html页面内容给出来,要么给个可以测试的地址出来,这样大家应该就容易知道原因了。