jQuery MiniUI

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

datagrid多选数据跳窗口进行操作后原表中已选中的行无法勾选 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2018-4-27 18:16:22 |只看该作者 |倒序浏览
datagrid设置了可以多选,多选数据后使用mini.open()打开了一个新的窗口,然后关闭窗口回到之前datagrid的页面,datagrid中已经选中的无法取消勾选,无论怎么点都没有用,有大神遇到过吗??

Rank: 8Rank: 8

沙发
发表于 2018-4-27 18:20:43 |只看该作者
这要看你对原来的数据进行过什么处理了?是不是你把这条选中的数据移动过了?

Rank: 1

板凳
发表于 2018-4-27 18:22:47 |只看该作者
felt 发表于 2018-4-27 18:20
这要看你对原来的数据进行过什么处理了?是不是你把这条选中的数据移动过了? ...

没有移动过,就新弹出了一个窗口,不做任何操作,关闭这个弹出的窗口页面,原来已经勾选中的数据无论如何都没法取消勾选了,只能重新查询一遍刷新一遍datagrid才可以重新勾选

Rank: 8Rank: 8

地板
发表于 2018-4-28 09:17:24 |只看该作者
flaglx 发表于 2018-4-27 18:22
没有移动过,就新弹出了一个窗口,不做任何操作,关闭这个弹出的窗口页面,原来已经勾选中的数据无论如何 ...

提供下重现代码看一下吧

Rank: 1

5#
发表于 2018-5-3 09:59:06 |只看该作者
本帖最后由 flaglx 于 2018-5-3 10:03 编辑
felt 发表于 2018-4-28 09:17
提供下重现代码看一下吧

我多选完之后,点击按钮执行这个方法
if(data.length != 0) {
            mini.open({
                url: basepath + "/generalReconciliationController/agentAccountInfo?agentId="+data[0].agentId,
                title: "经办人交账",
                width: 1180,
                height: 580,
                allowResize: false,
                showModal: true,
                showCloseButton: true,
                onload: function () {
                    var iframe = this.getIFrameEl();
                    iframe.contentWindow.$K.fin.agentAccountController.setData(data);
                },
                ondestroy: function (resp) {
                    if (resp == "ok"||resp == "saveok") {
                        $K.fin.AgentReconciliationController.prototype.searchData();
                    }
                }
            });
        }else {
            mini.alert("请选择不少于一条交账数据");
        }


然后通过  iframe.contentWindow.$K.fin.agentAccountController.setData(data); 这个语句跳页面后执行的是这个

$K.fin.AgentAccountController.prototype.setData = function (data){
        dataGrid.setData(data);
        var notSumMoney = 0;
        for (var i = 0;i < data.length;i++){
            if (data.chargeItemId == 1) {
                notSumMoney = accAdd(notSumMoney,Number(data.notSumMoney));
            }
            if (data.chargeItemId == 21) {
                notSumMoney = accAdd(notSumMoney,Number(data.notSumMoney));
            }
            if (data.chargeItemId == 2) {
                notSumMoney = accAdd(notSumMoney,Number(data.notSumMoney));
            }
            if (data.chargeItemId == 12) {
                notSumMoney = accAdd(notSumMoney,Number(data.notSumMoney));
            }
            if (data.chargeItemId == 8) {
                notSumMoney = accAdd(notSumMoney,Number(data.notSumMoney));
            }
            if (data.chargeItemId == 29) {
                notSumMoney = accAdd(notSumMoney,Number(data.notSumMoney));
            }
        }
        if(notSumMoney < 0){
            notSumMoney = 0 - notSumMoney;
            type = '1';
        }
        document.getElementById('MoneySum').innerHTML = notSumMoney+"";
        document.getElementById('notMoneySum').innerHTML = notSumMoney+"";
        mini.get('agentId').setValue(data[0].agentId);
    }

然后我直接关闭mini.open()出来的这个弹出窗口之后原先页面多选的datagrid数据就没办法取消选择了,但是未多选的其他数据都能正常勾选和取消

Rank: 8Rank: 8

6#
发表于 2018-5-3 11:03:34 |只看该作者
flaglx 发表于 2018-5-3 09:59
我多选完之后,点击按钮执行这个方法
if(data.length != 0) {
            mini.open({

http://www.miniui.com/demo/#src=buttonedit/selectGrid_Multi.html
你能在这个例子上实现你的问题,做成demo发附件给我,我这边调试看下

Rank: 1

7#
发表于 2018-5-3 11:18:50 |只看该作者
jialiang 发表于 2018-5-3 11:03
http://www.miniui.com/demo/#src=buttonedit/selectGrid_Multi.html
你能在这个例子上实现你的问题,做 ...

已经解决了。。对比了一下同事的代码,跳过去到另一个页面的方法在dataGrid.setData(data)这一行代码之前加上data=mini.clone(data)就好了

谢谢两位大神的答复!

Archiver|普加软件

GMT+8, 2024-9-17 04:30 , Processed in 1.029048 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部