`
wangyihust
  • 浏览: 436198 次
文章分类
社区版块
存档分类
最新评论

父窗体与子窗体之间的调用-使用模态窗体之间传递多个值

阅读更多
在web应用中,如何以模态窗口方式新打开子窗口,并往子窗口里传递多个值,而在子窗口中,能接受这些值,并且对这些值修改后,可以再提交传递给父窗口呢?在codeproject上,有篇文章介绍了方法,下面介绍如下:
1 先建一个叫Parent.html的父窗口,写入其中的HTML代码如下: 
  
<HTML>
    <HEAD>
<title>Parent Webform</title>
<script language="javascript">
function OpenChild()
{
    var ParmA = retvalA.value;
    var ParmB = retvalB.value;
    var ParmC = retvalC.value;
    var MyArgs = new Array(ParmA, ParmB, ParmC);
    var WinSettings = "center:yes;resizable:no;dialogHeight:300px"
    var MyArgs = window.showModalDialog(
      "Child.html", MyArgs, WinSettings);
    if (MyArgs == null)
    {
        window.alert(
"Nothing returned from child. No changes made to input boxes")
    }
    else
    {
        retvalA.value=MyArgs[0].toString();
        retvalB.value=MyArgs[1].toString();
        retvalC.value=MyArgs[2].toString();
    }
}
        </script>
    </HEAD>
    <body>
        <P><INPUT id="retvalA" type="text" value="ValueA"></P>
        <P><INPUT id="retvalB" type="text" value="ValueB"></P>
        <P><INPUT id="retvalC" type="text" value="ValueC"></P>
        <P><BUTTON onclick="OpenChild()" type="button">
                Open Child Window</BUTTON>
        </P>
    </body>
</HTML>

2 建立一个叫Child.html的窗体,写入HTML代码如下

<HTML>
    <HEAD>
        <TITLE>Child Webform</TITLE>
        <script language="javascript">
function Done() {
    var ParmA = tbParamA.value;
    var ParmB = tbParamB.value;
    var ParmC = tbParamC.value;
    var MyArgs = new Array(ParmA, ParmB, ParmC);
    window.returnValue = MyArgs;
    window.close();
}
function doInit() {
    var MyArgs =  window.dialogArguments;
    tbParamA.value = MyArgs[0].toString();
    tbParamB.value = MyArgs[1].toString();
    tbParamC.value = MyArgs[2].toString();
}
        </script>
    </HEAD>
    <BODY onload="doInit()">
        <P>Param A:<INPUT id="tbParamA" TYPE="text"></P>
        <P>Param B:<INPUT ID="tbParamB" TYPE="text"></P>
        <P>Param C:<INPUT ID="tbParamC" TYPE="text"></P>
        <BUTTON onclick="Done()" type="button">OK</BUTTON>
    </BODY>
</HTML>

分享到:
评论

相关推荐

    c# 委托、父窗体传值到子窗体,DEMO,完整源码

    在这个"父窗体传值到子窗体,DEMO"中,我们可以深入理解委托如何在窗口之间的通信中起到关键作用。这个DEMO可能包含了如何在Visual Studio 2010环境下创建一个简单的应用程序,该程序演示了如何使用委托从父窗口...

    同过子窗体来刷新父窗体(子窗体提交父窗体刷新)

    - 在父窗体中添加一个按钮或者其他控件,点击后弹出子窗体,通常使用`ShowDialog()`方法来以模态对话框的方式显示子窗体。 2. **传递数据** - 当子窗体中完成数据的修改或添加后,需要将这些变化传递回父窗体。这...

    C#_winform_多个窗体之间相互传递数据操作

    3. **控制父窗体与子窗体的关系**: - **使用ShowDialog()**:如果希望在新窗体打开期间阻止父窗体的交互,可以使用`ShowDialog()`方法。这会创建一个模态对话框,用户必须关闭子窗体才能继续操作父窗体。 - **...

    C# 子窗体传值给父窗体

    子窗体可以是模态或非模态,前者阻止用户与父窗体交互直到子窗体关闭,而后者允许用户同时与两者交互。 **1. 静态变量/属性传递** 一种简单的传递方式是通过静态变量或属性。在子窗体中设置一个静态变量,当需要...

    子窗体关闭父窗体

    在这个例子中,当用户在子窗体上点击“关闭父窗体”按钮时,会调用`buttonCloseParent_Click`事件处理程序,它将关闭传递给子窗体的父窗体引用。同时,子窗体自身也会被关闭。 除了上述方法,还可以通过事件委托...

    Delphi 模态窗体下更新另一个窗体内容

    当一个模态窗体打开时,它会阻止用户与父窗体或其他非模态窗体的交互,直到该模态窗体被关闭。这种机制在需要用户输入关键信息或确认操作时非常有用。 在描述中提到的“更新另一个窗体内容”是指在模态窗体中进行...

    C#多窗体关联子窗体的实例.rar

    "C#多窗体关联子窗体的实例.rar"这个压缩包文件很可能是提供了一个实际的项目示例,用于演示如何在C#中实现主窗体(父窗体)与多个子窗体之间的交互。下面我们将深入探讨这一主题。 首先,让我们了解什么是窗体...

    csharp子窗体关闭父窗体

    在Visual Studio 2008这样的环境中,我们经常需要管理多个窗口之间的交互,比如子窗体(子窗口)操作完成后关闭自身并同时关闭父窗体(主窗口)。以下是一些关于这个主题的关键知识点: 1. **窗体层级关系**:在...

    c#中如何控制模态子窗体中的进度条

    当调用`Form.ShowDialog()`时,窗体会以模态方式显示,阻止用户与父窗体进行交互,直到模态窗体关闭。因此,主线程会被阻塞,不能继续执行后续代码,包括更新进度条。 为了解决这个问题,我们可以创建两个子线程:...

    父子窗体的调用 c#

    子窗体也可以是模态或非模态的,模态窗体会阻止用户与父窗体交互,直到子窗体关闭;非模态则允许同时操作。 2. **创建子窗体**: 创建子窗体通常是通过继承`Form`类并添加所需控件和逻辑实现的。例如: ```csharp...

    子窗体传值给父窗体的select

    1. **子窗体与父窗体通信**:在JavaScript或者类似的客户端脚本语言中,子窗体和父窗体之间的通信可以通过多种方式实现。如果子窗体是弹出的模态对话框,通常可以通过事件监听和回调函数来传递信息。例如,可以在子...

    C#实现父子窗体全传值案例

    4. 使用委托:定义一个委托类型,子窗体通过该委托调用父窗体的方法传递数据。 ```csharp public delegate void DataReturnHandler(object data); // ... ChildForm child = new ChildForm(Parent_ReturnData);...

    vb父子窗体实例

    子窗体是在特定情况下打开的,它们可以是模态或非模态,模态子窗体会阻止用户与父窗体进行交互,直到子窗体关闭,而非模态则允许同时操作。在本例中,用户通过树形控件选择项目,触发相应的子窗体显示。 **2. 树形...

    C#简单实现子窗体向父窗体传值的方法

    这种方法更灵活,可以在父窗体中定义一个公开的属性或方法,供子窗体调用。这样,子窗体可以通过这个属性或方法来修改父窗体的状态。以下是如何实现的示例: ```csharp // Form1.cs public partial class Form1 : ...

    ShowModalDialog父窗体向子窗体传值

    总的来说,`showModalDialog`和`showModelessDialog`是JavaScript中用于创建弹出式对话框的两种方式,它们提供了在父窗口与子窗口之间传递数据的机制,同时也能够定制对话框的外观和行为。在实际应用中,根据需求...

    商业编程-源码-Visual Basic.NET 中多 Windows 窗体的同步.zip

    - VB.NET支持MDI应用,允许在一个父窗体中打开和管理多个子窗体。 - 子窗体作为MDIChild,可以在父窗体内部自由移动和排列,提供统一的界面体验。 - 通过`IsMdiContainer=True`设定父窗体为MDI容器,`MdiParent`...

    QT 多窗体通信demo

    模态对话框会阻止用户与父窗体的交互,直到对话框关闭;非模态对话框则允许用户同时操作多个窗口。在实际应用中,根据需求选择合适类型的对话框。 5. **事件处理**:QT中的事件驱动模型使得窗口系统可以响应用户的...

    子窗体与父窗体传值示例js代码

    总结来说,子窗体与父窗体之间的通信主要是通过`window.dialogArguments`获取父窗体引用,`window.returnValue`传递值,以及`window.showModalDialog()`方法的返回值来实现的。在实际应用中,这种通信方式可以用于...

    .Net2005窗体调用demo

    使用`ShowDialog`方法会创建一个模态窗体,用户必须关闭这个窗体后才能继续与父窗体交互。在Form1中打开模态Form2: ```csharp private void button1_Click(object sender, EventArgs e) { Form2 form2 = new ...

    父子窗体滚动条支持鼠标滚轮移动

    2. **消息传递**:当子窗体接收到滚轮事件后,需要向父窗体发送一个消息,告知其应该进行滚动。这可能通过自定义消息或标准的Windows消息完成。 3. **滚动条控制**:在父窗体的事件处理器中,根据接收到的消息调整...

Global site tag (gtag.js) - Google Analytics