zoukankan      html  css  js  c++  java
  • 模态化窗口范例

    模态化窗口时一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
  • 相关阅读:
    轮播图
    MySQL初认识
    css的动画
    jQuery 滚动监听总结
    DOM操作 练习
    Ajax总结
    日历 练习
    Jquery基础
    2018-07-14Java基础+基本数据类型+自动/强制数据类型转换+定义变量+运算符
    2018-07-13E-R图设计数据库+三大范式+修改用户密码+分配用户权限
  • 原文地址:https://www.cnblogs.com/happygx/p/2096018.html
Copyright © 2011-2022 走看看