父窗体弹出模态窗口 并接收模态窗口返回值的处理

本文介绍如何在父窗体中打开模态窗口,并处理模态窗口返回的值。通过`showModalDialog`函数打开窗口,利用回调函数`selectFeaturesCallback`接收返回值,根据返回值执行相应操作。模态窗口中,实现选中项的勾选状态同步,并通过`ReturnToParent`函数将选定信息回传给父窗体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 父类窗口的关键处理

打开模态窗口函数

   function FeatureSelects(dataType, title) {
                var url = "../../CommonPage/ClothFeatureSelect.aspx?dataType=" + dataType + "&callback=selectFeaturesCallback&mutilFlag=1&fliter=" + Math.random();
                showModalDialog(url, 'subpage', 'dialogHeight=465px;dialogWidth=600px;title=面料选择; center=yes; scroll=no; resizable=no; status=no');
            };

返回值 的处理

      function selectFeaturesCallback(returnVal) {
                if (returnVal != null && returnVal.trim().length > 0) {
                    var arg = returnVal.split('|');
                    if (arg != null && arg.length > 1) {
                        $('#<%=txtFabricAddNo.ClientID%>').val(arg[1]);
                        if (arg[0] == '1') {
                            $('#<%=btnFabricAdd.ClientID%>').click();
                        } else if (arg[0] == '2') {
                            $('#<%=btnLiningAdd.ClientID%>').click();
                        } else {
                            alert("返回的数据类型异常");
                        }
                    }                   
                }
            }
                                                        <input type="button" id="btnAddFabric" value="增加" title="增加" onclick="FeatureSelects('1','');" />
 <input type="button" id="btnAddFabric" value="增加" title="增加" onclick="FeatureSelects('1','');" />

 

2. 模态窗口关键处理

//选中之前已选的商品
    function TickSelectedItems() {
       var gridView = document.getElementById("gvItemList");
       for(i = 1;i < gridView.rows.length; i++) {
            if(gridView.rows[i].cells[0].children[0] && gridView.rows[i].cells[0].children[0].value){                                  
                if(arrItemList.contains(gridView.rows[i].cells[0].children[0].value.trim()))
                    gridView.rows[i].cells[0].children[0].checked = true;     
                else
                    gridView.rows[i].cells[0].children[0].checked = false;     
            }
       }
    }
    
    //返回所选信息
    function ReturnToParent(closeFlag) {
        try {
            var dt = $('#txtDatatype').val().trim();
            var retVal = dt+"|" + arrItemList.join(",") ;
            if (typeof (Doc.parentModalDialog().selectFeaturesCallback) === 'function')
                Doc.parentModalDialog().selectFeaturesCallback(retVal);

            Doc.close();
            //if (closeFlag)
            //    Doc.close();

        } catch (e) { }
    }

    //返回所选信息 
    function SelAllReturnToParent(strItemNo) {
        try {
            debugger;
            if (typeof (Doc.parentModalDialog().selectFeaturesCallback) === 'function')
                Doc.parentModalDialog().selectFeaturesCallback(strItemNo);

            Doc.close();

        } catch (e) { }
    }

        //返回所选信息
    function CloseItems() {
        document.getElementById("hidPreItem").value = ""; //取消设置空值
        var hiditem = document.getElementById("hidPreItem").value;
        if (hiditem != "") {
            Doc.close();
        } else {
            parent.close();
        }
    }

     <input id="btnOk" class="PtButton" onclick="ReturnToParent(true);" type="button"
                                value="确定">&nbsp;&nbsp;
<input id="btnCancel" class="PtButton" onclick="CloseItems();" type="button" value="取消">&nbsp;&nbsp;&nbsp;&nbsp;
</input>

                                                                                                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值