iframe框架,dialog获取父窗体及窗体元素

iframe框架,dialog获取父窗体及窗体元素

获取父窗体内对象 — $.currentIframe()

首先,在使用layer.open打开的页面内使用

var index = parent.layer.getFrameIndex(window.name);

获取当前所打开框架的索引序号,并把此序号传送给下一级打开的窗口页面,那么在这个页面上使用:

var $obj = $.currentIframe().frames['layui-layer-iframe'+index];

就可以获取到上一级页面的所有元素对象

  • 例子:

打开“详情”页


function detail(keyValue) {
        layer.open({
            id: 'Detail',
            type: 2,
            title: '详情',
            shadeClose: true,
            anim: 7,
            isOutAnim: 2,
            move: false,
            offset: 'rb',
            area: ['70%', '100%'],
            content: '../../Manage/Detail?keyValue=' + keyValue
        })
    }

在“详情”页上打开另一页面“反馈”页

function feedback() {
        var index = parent.layer.getFrameIndex(window.name);
        dialogOpen({
            id: 'FeedbackForm',
            title: '反馈',
            width: '400px',
            height: '320px',
            url: '/Manage/FeedbackForm?index =' + index ,
            callBack: function (iframeId) {
                top.frames[iframeId].AcceptClick();
            }
        })
    }

在“反馈”页上调用“详情”页上的元素及各对象

//保存
    function AcceptClick() {
        $.SaveForm({
           ...
            success: function () {
                if (keyValue) {
                    var $obj = $.currentIframe().frames['layui-layer-iframe'+index];
                    var nowTime = new Date();
                    var addTime = nowTime.Format("yyyy-MM-dd HH:mm");
                    if (postData["FeedbackStatus"] == 1) {
                        if (postData["Content"] == "")
                            postData["Content"] = "正常通过";
                        $.currentIframe().$("#gridTable").trigger("reloadGrid");
                    }
                    var jsonStr = '{"Attachment":\"' + postData["Attachment"] + '\","Content":\"' + postData["Content"] + '\","CreateTime":\"' + addTime + '\","CreateUserName":""}';
                    $obj.$("#newData").val(jsonStr);
                    $obj.$("#newData").trigger("click");
                } else {
                    $.currentIframe().$("#gridTable").trigger("reloadGrid");
                }                             
                    
            }
        })
    }

参考资料:使用iframe框架打开页面(layer.open)并存在嵌套时怎样获取到嵌套内的框架对象?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下步骤将 WPF 对话框跳转到窗体: 1. 在您的 WPF 对话框,创建一个事件处理程序来处理“跳转”操作。例如,您可以在 WPF 对话框的代码文件创建一个名为“JumpToMainWindow”的方法: ``` private void JumpToMainWindow(object sender, EventArgs e) { MainWindow mainWindow = new MainWindow(); mainWindow.Show(); this.Close(); } ``` 在此方法,我们创建一个名为“MainWindow”的新窗体实例,将其显示出来,然后关闭当前的对话框。 2. 在您的 WPF 对话框,在需要跳转的控件上添加一个事件处理程序。例如,您可以添加一个名为“JumpButton”的按钮,并在 XAML 代码文件将其添加到按钮的“Click”事件处理程序: ``` <Button Name="JumpButton" Content="Jump to Main Window" Click="JumpToMainWindow" /> ``` 这会将“JumpButton”的单击事件绑定到名为“JumpToMainWindow”的方法。 3. 在您的 WPF 窗体,打开 WPF 对话框并处理“跳转”事件。例如,您可以在 MainWindow 的代码文件创建一个名为“OpenDialog”的方法: ``` private void OpenDialog() { MyDialog dialog = new MyDialog(); dialog.ShowDialog(); dialog.JumpButton.Click += JumpToMainWindow; } ``` 在此方法,我们创建一个名为“MyDialog”的新 WPF 对话框实例,并使用“ShowDialog”方法将其显示出来。然后,我们将“JumpButton”的单击事件绑定到名为“JumpToMainWindow”的方法。 当用户单击 WPF 对话框的“JumpButton”按钮时,将关闭当前的对话框并跳转到 MainWindow。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值