jQuery MiniUI

 找回密码
 立即注册
楼主: csbabyzhou
打印 上一主题 下一主题

有关父页面、子页面的问题。 [复制链接]

Rank: 4

11#
发表于 2016-3-1 16:51:19 |只看该作者

后台数据库(不含份数的字段,为null)传至前台。根据前台暂存的数据复制给num。但是份数不显示(值已经拿到了)




必须像上图那样,点击一下才看到值。有什么办法不点击也能看到值吗?(目前有点像刮刮卡的感觉)

Rank: 8Rank: 8

12#
发表于 2016-3-1 17:11:21 |只看该作者
csbabyzhou 发表于 2016-3-1 16:51
后台数据库(不含份数的字段,为null)传至前台。根据前台暂存的数据复制给num。但是份数不显示(值已经 ...

如果有问题,请提供重现html,光看你的文字,我无法了解

Rank: 4

13#
发表于 2016-3-1 17:19:54 |只看该作者
felt 发表于 2016-3-1 17:11
如果有问题,请提供重现html,光看你的文字,我无法了解

<body>
        <table align="center" style="width:98%;" cellspacing="13px" class="tabtd">
                <tr>
                        <td width="25%" align="right">保险公司</td>
                        <td width="50%" align="left">
                                <div id="companyName" name="companyName" class="mini-combobox" style="width:40%;" popupWidth="160" textField="COMPANYNAME" valueField="COMPANYNAME" url="khdwxxsbtcxzgs.action" multiSelect="false" showClose="true" onvaluechanged="getValues" required="true">
                                        <div property="columns">
                                                <div header="保险公司名称" field="COMPANYNAME"></div>
                                        </div>
                                </div></td>
                </tr>
        </table>
        <div id="sbtxmxGrid" onlyCheckSelection="true" class="mini-datagrid" url="khdwxxsbtcxzgsmx.action" style="width: 99%;height: 80%;" idField="sid" allowCellEdit="true" allowCellSelect="true" onselect="updateTotal" multiSelect="true" showPager="false" editNextOnEnterKey="true" ondeselect="updateTotal" oncellbeginedit="OnCellBeginEdit" editNextRowCell="true">
                <div property="columns">
                        <div type="indexcolumn" width="5%"></div>
                        <div type="checkcolumn" width="5%" select="alert('1')">&nbsp</div>
                        <div name="bxbh" field="bxbh" headerAlign="center" width="10%">保险编号</div>
                        <div name="sid" field="sid" headerAlign="center" width="10%">SID</div>
                        <div name="bxmc" field="bxmc" headerAlign="center" width="25%">保险名称</div>
                        <div name="bfe" field="bfe" headerAlign="center" width="12%">价格(元 / 份)</div>
                        <div name="num" field="num" id="num" headerAlign="center" width="10%" displayField="num">
                                份数 <input property="editor" class="mini-combobox" required="true" style="width:100%;" valueField="id" textField="text" />
                        </div>
                        <div name="bxsm" field="bxsm" headerAlign="center" width="40%">保险说明</div>
                </div>
        </div>
        <table align="center" style="width:98%;" cellspacing="13px" class="tabtd">
                <tr>
                        <td width="25%" align="left">总计:&nbsp&nbsp <input id="zje" name="zje" class="mini-textbox" readonly width="40%" value="0" /> (元)</td>
                </tr>
        </table>
</body>
<script>
        mini.parse();
        var sbtxmxGrid = mini.get('sbtxmxGrid');
        var companyName = mini.get('companyName');
        sbtxmxGrid.load();
        // 按照选择的单位重置grid数据
        function getValues() {
                sbtxmxGrid.load({
                        companyName : companyName.getValue(),
                });
        }
        // 获得商保套餐明细grid对象
        function getSbtcmxGridData() {
                return mini.get('sbtxmxGrid').getData();
        }
        // 获得总金额
        function getZjeData() {
                return mini.get('zje').getValue();
        }
        //获得主键
        function getSid() {
                var k = mini.get('sbtxmxGrid').getSelecteds().length;
                var m = "";
                for (i = 0; i < k; i++) {
                        m = m + mini.get('sbtxmxGrid').getSelecteds().sid + ";";
                }
                return m;
        }
        //获得份数
        function getFs() {
                var k = mini.get('sbtxmxGrid').getSelecteds().length;
                var m = "";
                for (i = 0; i < k; i++) {
                        m = m + mini.get('sbtxmxGrid').getSelecteds().num + ";";
                }
                return m;
        }

        //获得商保编号及其份数组合
        function getInsuranceDetail() {
                var k = mini.get('sbtxmxGrid').getSelecteds().length;
                var m = "";
                for (i = 0; i < k; i++) {
                        m = m + mini.get('sbtxmxGrid').getSelecteds().bxbh + "*"
                                        + mini.get('sbtxmxGrid').getSelecteds().num + ";";
                }
                return m;
        }
        //获得保险公司名
        function getCompanyName() {
                return mini.get('companyName').getValue();
        }

        // 初始化商保套餐明细grid对象Data
        function setSbtcmxGridData(sgrd) {
                if (sgrd.sid != null) {
                        //跨页面传递的数据对象,克隆后才可以安全使用
                        var data = mini.clone(sgrd);
                        mini.get('companyName').setValue(data.gs);
                        var arrSid = new Array();
                        arrSid = data.sid.split(";");
                        var arrNum = new Array();
                        arrNum = data.num.split(";");
                        sbtxmxGrid.load({
                                companyName : companyName.getValue()
                        }, function() {
                                var rows = mini.get('sbtxmxGrid').getData();
                                for (j = 0; j < rows.length; j++) {
                                        for (k = 0; k < arrSid.length - 1; k++) {
                                                if (rows[j].sid == arrSid[k]) {
                                                        //alert(arrNum[k]);//测试
                                                        rows[j].num = arrNum[k];
                                                        sbtxmxGrid.select(rows[j]);
                                                }
                                        }
                                }
                        });
                }
        }

        // 更新总金额
        function updateTotal() {

                var total = 0;
                mini.get('sbtxmxGrid').commitEdit();
                var rows = mini.get('sbtxmxGrid').getSelecteds();
                for ( var i = 0; i < rows.length; i++) {
                        var row = rows;
                        if (rows.num == null) {
                                mini.alert("请先设置所选保险份数!");
                                deselect(rows);
                        }
                        total = total + row.bfe * row.num;
                }
                mini.get('zje').setValue(total);

        }

        //编辑前发生   动态添加下拉菜单数据      
        function OnCellBeginEdit(e) {
                var grid = e.sender;
                var record = e.record;
                var field = e.field, value = e.value;
                var editor = e.editor;

                //份数        
                if (field == "num") {
                        var tempDataAll = "[";
                        var tempData;
                        var id = record.kxfs;
                        if (id) {
                                var arr = new Array();
                                arr = id.split(",");
                                var i;
                                for (i = 0; i < arr.length; i++) {
                                        tempData = "{id:'" + arr + "',text:'" + arr + "'}";
                                        tempDataAll = tempDataAll + tempData + ",";
                                }
                                if (tempDataAll.lastIndexOf(",") == -1) {
                                        tempDataAll = [];
                                } else {
                                        tempDataAll = tempDataAll.substring(0, tempDataAll
                                                        .lastIndexOf(","))
                                                        + "]";
                                }
                        } else {
                                e.cancel = true;
                        }
                        editor.setData(tempDataAll);
                }
        }
</script>

==================上述为子页面=======================

父页面部分代码:

                                        <div id="sbtcGrid" class="mini-datagrid" style="width: 100%;" idField="id" allowCellEdit="true" allowCellSelect="true" multiSelect="true" showPager="false" editNextOnEnterKey="true" editNextRowCell="true">
                                                <div property="columns">
                                                        <div type="indexcolumn" width="20"></div>
                                                        <div type="checkcolumn" width="20"></div>
                                                        <div name="name" field="name" headerAlign="center" width="15%">
                                                                名称 <input property="editor" class="mini-textbox" required="true" style="width: 100%;" />
                                                        </div>
                                                        <div name="je" field="je" headerAlign="center" width="15%">金额</div>
                                                        <div id="gs" name="gs" field="gs"  visible="true" headerAlign="center" width="15%">公司</div>
                                                        <div id="sid" name="sid" field="sid" visible="true" headerAlign="center" width="15%">SID</div>
                                                        <div id="num" name="num" field="num" visible="true" headerAlign="center" width="15%">份数</div>
                                                        <div id="insuranceDetail" name="insuranceDetail" field="insuranceDetail" headerAlign="center" width="15%">套餐组合简要</div>
                                                        <div name="action" width="120" headerAlign="center" align="center" renderer="onActionRenderer" cellStyle="padding:0;">详细</div>
                                                </div>
                                        </div>



//添加详细按钮
                function onActionRenderer(e) {
                    var grid = e.sender;
                    var record = e.record;
                    var uid = record._uid;
                    var rowIndex = e.rowIndex;
                    var s = "<a href='javascript:sbtcDetail()'>费用详情</a>" ;
                    return s;
                }
                       
                        // 商保套餐详细
                        function sbtcDetail() {
                                mini.open({
                    url: bootPATH + "../../khdwxxsbtcxz.action",
                    title: "选择商保套餐详细", width: 800, height: 500, showModal: false,  
                    onload: function () {
                            var iframe = this.getIFrameEl();
                            var Detail=sbtcGrid.getSelected();
                                    var sbtcDetailGridData={
                                                    "gs"etail.gs,
                                                    "sid"etail.sid,
                                                    "num"etail.num,
                                                    "je"etail.je,
                                    };
                        iframe.contentWindow.setSbtcmxGridData(sbtcDetailGridData);
                        

                        

                    },
                    ondestroy: function (action) {
                            var iframe = this.getIFrameEl();
                            sbtcDetailGridData= iframe.contentWindow.getSbtcmxGridData();
                        var zje = iframe.contentWindow.getZjeData();
                        var companyName=iframe.contentWindow.getCompanyName();
                        var sid=iframe.contentWindow.getSid();
                        var num=iframe.contentWindow.getFs();
                        var insuranceDetail=iframe.contentWindow.getInsuranceDetail();
                        var row = sbtcGrid.getSelected();
                        sbtcGrid.updateRow(row, {"je" : zje});
                        sbtcGrid.updateRow(row, {"gs" : companyName});
                        sbtcGrid.updateRow(row, {"sid" : sid});
                        sbtcGrid.updateRow(row, {"num" : num});
                        sbtcGrid.updateRow(row, {"insuranceDetail" : insuranceDetail});
                    }
                });
                        }
                       

Rank: 8Rank: 8

14#
发表于 2016-3-1 17:23:11 |只看该作者
csbabyzhou 发表于 2016-3-1 17:19
保险公司
                       
                               

displayField和field请设置不同的字段,更新的时候这2个字段一起更新

Rank: 4

15#
发表于 2016-3-1 17:25:34 |只看该作者
felt 发表于 2016-3-1 17:23
displayField和field请设置不同的字段,更新的时候这2个字段一起更新

照您说的改了,问题依旧,,,已疯。。。

Rank: 8Rank: 8

16#
发表于 2016-3-1 17:32:17 |只看该作者
csbabyzhou 发表于 2016-3-1 17:25
照您说的改了,问题依旧,,,已疯。。。

grid.updateRow(row,{field1:value1,field2:value2.........
把更新的写一起,同时更新那列的displayField和field不可能显示不出来的

Archiver|普加软件

GMT+8, 2024-10-7 14:32 , Processed in 1.064334 second(s), 8 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部