window.showModalDialog()弹出页面的关闭问题

     关闭当前页面的方法在C#关闭当前页面(借道JavaScript) 中思考过。但是我在面对window.showModalDialog()弹出页面中使用的时候却失效了,相当恼火郁闷。

 

     从网上查找,了解到Window.ShowModalDialog使用手册 ,但是没有我的情况的描述。只有做一些测试页面找原因。从页面TestOpenWindow.htm中打开一个窗口,新窗口OpenWindow.aspx有3个按钮,分别是用javascript关闭,回送服务器关闭,回送服务器不关闭。

 

代码如下:

 

ContractedBlock.gif ExpandedBlockStart.gif TestOpenWindow.htm
<body>
    
<input id="btnIpenWindow" type="button" value="打开窗口" onclick="OpenWindow()" />
body>
<script type="text/javascript" language="javascript">
    function OpenWindow()
ExpandedBlockStart.gifContractedBlock.gif    
{
        var result
=window.showModalDialog("OpenWindow.aspx","","dialogHeight:550px;dialogWidth:750px;resizable:no;scroll:no;status:no;help:no");
    }

script>

 

ContractedBlock.gif ExpandedBlockStart.gif OpenWindow.aspx
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Button ID="btnCancel" runat="server" Text="取消(回送服务器后关闭)" OnClick="btnCancel_Click1"/>
        
<asp:Button ID="btnCancel2" runat="server" Text="取消(回送服务器不关闭)" OnClick="btnCancel_Click3"/>
        
<input id="btnCancel1" type="button" value="取消(JavaScript)" onclick="window.close()" />
    
div>
    
form>
body>

 

 

ContractedBlock.gif ExpandedBlockStart.gif OpenWindow.aspx.cs
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    
protected void btnCancel_Click1(object sender, EventArgs e)
    {
        Response.Write(
"");
    }
    
protected void btnCancel_Click3(object sender, EventArgs e)
    {
        btnCancel2.Text 
= "已回送服务器";
    }

 

     测试结果是只有用JavaScript关闭才能正常退回到父页面,原因是当想服务器postback后,回发的页面不会在showmodeldialog的页面中显示,而是新开一个页面,所以在C#中也只能关闭回发的页面,而不是当前showmodeldialog的页面。

转载于:https://www.cnblogs.com/wyinwing/archive/2008/09/05/1284965.html

你可能感兴趣的:(window.showModalDialog()弹出页面的关闭问题)