模态化窗口范例

模态化窗口时一showModalDialog来弹出模态化窗口的,以window.parent.returnValue来接受返回值并返回给父窗体

示例如下:实现弹出模态化窗口,在模态化窗口中返回传值给父窗口

cs端代码:

 
  
Response.Write( " <script>window.parent.returnValue=' " + url + " ';window.parent.close();</script> " );
// url为返回的值,返回后把模态化窗口关闭

javascript代码

 
  
function fnCallDialog() {
// 模态化窗口返回值
var values = "" ;
values
= showModalDialog( " FileInfoDB/Show.aspx " , values, " status:no;Help:no;resizable:yes " );
// 如果返回正确 则将返回值赋值给Address
if (values) {
document.Form1.Address.value
= values;
}

}

=====================================================================

咋一看,上面的代码完全可以实现所要的功能。从语法上理解是没问题的,但是在实际操作中就会出现点击模态化窗口返回值的时候就会出现如下问题:

点击模态化窗体传值,并且关闭模态化窗口的时候发现重新打开了一个新窗口,在新窗口中点击传值关闭时,新窗口关闭,但是模态化窗体依然没有关闭,值也没有传过去

解决这个问题的方法是:

将模态化窗体以frameset的形式嵌入到fram窗体内,

具体操作如下:

父窗体程序:假设父窗体为right.aspx

 
  
function wopen() {
// 模态化窗口返回值
var returnValue = showModalDialog( ' FileInfoDB/ShowMain.aspx ' , 0 , " dialogWidth:650px;dialogHeight:500px;help:no;center:yes;resizable:no;status:no;scroll:no " );
// 如果返回正确 则将返回值赋值给Address
if (returnValue != "" && returnValue != undefined) {
Form1.Address.value
= returnValue;
}
}

弹出ShowMain.aspx,ShowMain.aspx中嵌入Show.aspx(最终传值页面)

新建fram窗体ShowMain.aspx并且将最终要做操作的页面Show.aspx嵌入其中:

ShowMain.aspx
 
  
<% @ Page Language = " C# " AutoEventWireup = " true " CodeBehind = " ShowMain.aspx.cs " Inherits = " Three_points_screen.Server.FileInfoDB.ShowMain " %>
< HTML >
< HEAD >
< TITLE > 选择管理员 </ 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" >
< meta content ="no-cache" http-equiv ="Pragma" >
< meta content ="no-cache" http-equiv ="Cache-Control" >
< meta content ="0" http-equiv ="Expires" >
</ HEAD >
< frameset rows ="0,*" frameborder ="no" border ="0" framespacing ="0" >
< frame src ="about:blank" scrolling ="no" noresize >
< frame src ="Show.aspx" scrolling ="no" >
</ frameset >
</ HTML >

传值页面最终代码:

url为要返回的值

 
  
Response.Write( " <script>window.parent.returnValue=' " + url + " ';window.parent.close();</script> " );
这样就会把返回值url传给父窗体right.aspx

转载于:https://www.cnblogs.com/happygx/archive/2011/07/01/2096018.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值