关闭子窗口,刷新父窗口怎么写???

时间:2022-02-21 23:52:54
我有一个index.aspx里面有一个按钮,当点击按钮,弹出一个showmodeldilog这个框,这个是aaa.aspx
父窗口代码


function show(id)
{

    window.showModalDialog("aaa.aspx?id="+id,"","status=no;dialogWidth=300px;dialogHeight=200px;menu=no;resizeable=yes;scroll=yes;center=yes;edge=raise");
}


aaa.aspx里面有一个关闭按钮,这个关闭按钮,我怎么点击不行,
这个子窗口的按钮,我这样写的代码




  protected void btnClose_Click(object sender, EventArgs e)
    {

        this.btnClose.Attributes["onClick"] = "javascript:window.opener.location.reload(); window.opener = null;history.go(-1);window.close();";
    }


大虾们,我这个写的怎么不对?应该怎么写??

9 个解决方案

#1


谁告诉你的使用:window.opener??

this.btnClose.Attributes["onClick"] = "window.close();return false";

就可以了

window.showModalDialog("aaa.aspx?id="+id,"","status=no;dialogWidth=300px;dialogHeight=200px;menu=no;resizeable=yes;scroll=yes;center=yes;edge=raise");
window.location.reload()
就可以了

#2


更多使用方法
http://blog.csdn.net/net_lover/article/details/6910

#3


window.location.reload()
=>
window.location.href=window.location.href;

#4


引用 1 楼 net_lover 的回复:
谁告诉你的使用:window.opener??

this.btnClose.Attributes["onClick"] = "window.close();return false";

就可以了

window.showModalDialog("aaa.aspx?id="+id,"","status=no;dialogWidth=300px;dialogHeight=200px;m……


不行哎!

我aaa.aspx页面的代码是这样的


<body>
    <form id="form1" runat="server" target="_self">
    <div style=" padding:10px 10px; font-size:12px; line-height:25px;">
    <b>恭喜您,使用成功!</b>
    <br />
                   <asp:Button ID="btnClose" runat="server" Text="关闭当前窗口" Height="33px" 
            onclick="btnClose_Click" />
    </div>
    </form>
</body>

后台
 protected void btnClose_Click(object sender, EventArgs e)
    {

        this.btnClose.Attributes["onClick"] = "window.close();return false;";
    }
为什么点击关闭,关闭不了??
然后我又这样写了
 this.btnClose.Attributes["onClick"] = "javascript:window.close();return false;";
可点击关闭,直接在浏览器中打开两个新页面,一个是空页面,一个是这个aaa.aspx页面

#5


this.btnClose.OnClientClick = "window.close();return false;";

aaa.aspx
里面加上
<base target="_self">

为了兼容其他浏览器,最好的方法是采用frameset/iframe等嵌套。然后写
this.btnClose.OnClientClick = "window.parent.close();return false;";

#6


可点击关闭,直接在浏览器中打开两个新页面,一个是空页面,一个是这个aaa.aspx页面

你这这是先提交一次之后才执行的关闭吧???

#7


引用 5 楼 net_lover 的回复:
this.btnClose.OnClientClick = "window.close();return false;";

aaa.aspx
里面加上
<base target="_self">

为了兼容其他浏览器,最好的方法是采用frameset/iframe等嵌套。然后写
this.btnClose.OnClientClick = "window.parent.close()……

我form上面不是加了嘛target="_self",可不行滴啊!

#8


引用 3 楼 sandy945 的回复:
window.location.reload()
=>
window.location.href=window.location.href;

两位大虾都说了。
不多说,顶。

#9


那就放frameset里面啊
例子

http://dotnet.aspx.cc/article/00000000-0000-0000-0000-00000000000f/read.aspx


不是给你说过了吗?
不同的方案有不同的解决方法。

你保证你贴的代码是全部代码吗?你能保证不是其他的代码影响了吗?

#1


谁告诉你的使用:window.opener??

this.btnClose.Attributes["onClick"] = "window.close();return false";

就可以了

window.showModalDialog("aaa.aspx?id="+id,"","status=no;dialogWidth=300px;dialogHeight=200px;menu=no;resizeable=yes;scroll=yes;center=yes;edge=raise");
window.location.reload()
就可以了

#2


更多使用方法
http://blog.csdn.net/net_lover/article/details/6910

#3


window.location.reload()
=>
window.location.href=window.location.href;

#4


引用 1 楼 net_lover 的回复:
谁告诉你的使用:window.opener??

this.btnClose.Attributes["onClick"] = "window.close();return false";

就可以了

window.showModalDialog("aaa.aspx?id="+id,"","status=no;dialogWidth=300px;dialogHeight=200px;m……


不行哎!

我aaa.aspx页面的代码是这样的


<body>
    <form id="form1" runat="server" target="_self">
    <div style=" padding:10px 10px; font-size:12px; line-height:25px;">
    <b>恭喜您,使用成功!</b>
    <br />
                   <asp:Button ID="btnClose" runat="server" Text="关闭当前窗口" Height="33px" 
            onclick="btnClose_Click" />
    </div>
    </form>
</body>

后台
 protected void btnClose_Click(object sender, EventArgs e)
    {

        this.btnClose.Attributes["onClick"] = "window.close();return false;";
    }
为什么点击关闭,关闭不了??
然后我又这样写了
 this.btnClose.Attributes["onClick"] = "javascript:window.close();return false;";
可点击关闭,直接在浏览器中打开两个新页面,一个是空页面,一个是这个aaa.aspx页面

#5


this.btnClose.OnClientClick = "window.close();return false;";

aaa.aspx
里面加上
<base target="_self">

为了兼容其他浏览器,最好的方法是采用frameset/iframe等嵌套。然后写
this.btnClose.OnClientClick = "window.parent.close();return false;";

#6


可点击关闭,直接在浏览器中打开两个新页面,一个是空页面,一个是这个aaa.aspx页面

你这这是先提交一次之后才执行的关闭吧???

#7


引用 5 楼 net_lover 的回复:
this.btnClose.OnClientClick = "window.close();return false;";

aaa.aspx
里面加上
<base target="_self">

为了兼容其他浏览器,最好的方法是采用frameset/iframe等嵌套。然后写
this.btnClose.OnClientClick = "window.parent.close()……

我form上面不是加了嘛target="_self",可不行滴啊!

#8


引用 3 楼 sandy945 的回复:
window.location.reload()
=>
window.location.href=window.location.href;

两位大虾都说了。
不多说,顶。

#9


那就放frameset里面啊
例子

http://dotnet.aspx.cc/article/00000000-0000-0000-0000-00000000000f/read.aspx


不是给你说过了吗?
不同的方案有不同的解决方法。

你保证你贴的代码是全部代码吗?你能保证不是其他的代码影响了吗?