jQuery MiniUI

 找回密码
 立即注册
查看: 10705|回复: 12
打印 上一主题 下一主题

两张表通过onSelectionChanged事件联动,表A数据为空表B不联动 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2017-6-15 18:00:25 |只看该作者 |倒序浏览
两张表通过onSelectionChanged事件联动,表A数据为空表B不联动
请问怎么处理A表当前选中行为空?

Rank: 8Rank: 8

沙发
发表于 2017-6-15 18:13:12 |只看该作者
可以判断a表中的选中行数量
e.selecteds.length

Rank: 1

板凳
发表于 2017-6-16 09:15:40 |只看该作者
dforce 发表于 2017-6-15 18:13
可以判断a表中的选中行数量
e.selecteds.length

可是 A表无数据时,不触发onSelectionChanged事件,可以在哪点判断?

Rank: 8Rank: 8

地板
发表于 2017-6-16 09:18:56 |只看该作者
meriberry 发表于 2017-6-16 09:15
可是 A表无数据时,不触发onSelectionChanged事件,可以在哪点判断?

无法阻止不触发
但是你可以根据数据数量来判断是否执行

Rank: 8Rank: 8

5#
发表于 2017-6-16 09:19:02 |只看该作者
meriberry 发表于 2017-6-16 09:15
可是 A表无数据时,不触发onSelectionChanged事件,可以在哪点判断?

无法阻止不触发
但是你可以根据数据数量来判断是否执行

Rank: 1

6#
发表于 2017-6-16 09:42:14 |只看该作者
felt 发表于 2017-6-16 09:19
无法阻止不触发
但是你可以根据数据数量来判断是否执行

我想表达的意思是,表B通过表A的onSelectionChanged事件,联动出了数据,但后续表A的数据为空时,因为不触发onSelectionChanged事件,所以表B中仍然是之前联动出来的数据,怎样才可以让表B的数据同时也为空?

Rank: 1

7#
发表于 2017-6-16 10:10:48 |只看该作者
felt 发表于 2017-6-16 09:19
无法阻止不触发
但是你可以根据数据数量来判断是否执行

e.selecteds.length 因为onSelectionChanged事件都不触发,所以判断不了啊

Rank: 8Rank: 8

8#
发表于 2017-6-16 10:47:52 |只看该作者
meriberry 发表于 2017-6-16 10:10
e.selecteds.length 因为onSelectionChanged事件都不触发,所以判断不了啊

明白你的场景了,你这里应该需要在a表数据清空的时候把b表也清空一下。
你现在a表是怎样清空的,通过重新加载,还是setData方式?

Rank: 1

9#
发表于 2017-6-16 11:25:01 |只看该作者
felt 发表于 2017-6-16 10:47
明白你的场景了,你这里应该需要在a表数据清空的时候把b表也清空一下。
你现在a表是怎样清空的,通过重新 ...

是通过重新加载,没有用着setData

function search() {
            var combobox_cgdw = mini.get("combobox_cgdw").value;
            var datepicker_kssj = (mini.get("datepicker_kssj").value).getFullYear() + "-" + ((mini.get("datepicker_kssj").value).getMonth() + 1) + "-" + (mini.get("datepicker_kssj").value).getDate();
            var datepicker_jssj = (mini.get("datepicker_jssj").value).getFullYear() + "-" + ((mini.get("datepicker_jssj").value).getMonth() + 1) + "-" + (mini.get("datepicker_jssj").value).getDate();
            var cglszh = "";

            //var selecteds = datagrid_cgdjl.selecteds;
            //alert("1" + selecteds.length);
            datagrid_cgdjl.load({ combobox_cgdw: combobox_cgdw, datepicker_kssj: datepicker_kssj, datepicker_jssj: datepicker_jssj });

            var rows_main = datagrid_cgdjl.getData();
            //var rows_detail = datagrid_cgjhjl.getData();

            if (rows_main.length > 0) {
                alert("1主表有数据");
            }
            else {
                alert("1主表为空");
                if (rows_detail.length > 0) {
                    datagrid_cgjhjl.load({ combobox_cgdw: combobox_cgdw, datepicker_kssj: datepicker_kssj, datepicker_jssj: datepicker_jssj, cglszh: cglszh });
                }
            }

            //if (selecteds.length = 0)
            //{
            //            datagrid_cgjhjl.load({ combobox_cgdw: combobox_cgdw, datepicker_kssj: datepicker_kssj, datepicker_jssj: datepicker_jssj, cglszh: cglszh });

            //}

        }

        function onSelectionChanged(e) {
            var grid = e.sender;
            var selecteds = e.selecteds;
            alert("2" + selecteds.length);
            var record = grid.getSelected();

            var rows = datagrid_cgdjl.getData();

            if (rows.length > 0) {
                alert("2主表有数据");
            }
            else {
                alert("2主表为空");
            }

            var combobox_cgdw = mini.get("combobox_cgdw").value;
            var datepicker_kssj = (mini.get("datepicker_kssj").value).getFullYear() + "-" + ((mini.get("datepicker_kssj").value).getMonth() + 1) + "-" + (mini.get("datepicker_kssj").value).getDate();
            var datepicker_jssj = (mini.get("datepicker_jssj").value).getFullYear() + "-" + ((mini.get("datepicker_jssj").value).getMonth() + 1) + "-" + (mini.get("datepicker_jssj").value).getDate();

            if (record) {
                datagrid_cgjhjl.load({ combobox_cgdw: combobox_cgdw, datepicker_kssj: datepicker_kssj, datepicker_jssj: datepicker_jssj, cglszh: record.cglszh });
            }
        }

Rank: 8Rank: 8

10#
发表于 2017-6-16 11:30:14 |只看该作者
meriberry 发表于 2017-6-16 11:25
是通过重新加载,没有用着setData

function search() {

那可以这样监听一下datagrid的load事件,有重新加载的话b表就清空
gridA.on("load",function(e){
    gridB.setData([])
})

Archiver|普加软件

GMT+8, 2025-7-23 14:30 , Processed in 1.051698 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部