jQuery MiniUI

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

grid重复值检查问题 [复制链接]

Rank: 6Rank: 6

跳转到指定楼层
楼主
发表于 2014-12-19 16:08:38 |只看该作者 |倒序浏览
        function OnCellEndEdit(e) {
            if ($.trim(e.value) == '') return false;
            var row = grid1.findRow(function(row1) {
                if (row1.barcode.toLowerCase() == e.value.toLowerCase() && grid1.indexOf(row1) != e.rowIndex) return true;
                return false;
            });
         }
这段代码,如只是在grid1里面编辑,能够正常判断。
但是当通过另外一个grid2批量给grid1追加数据之后(数组追加用的数组拼接方式,数据追加成功),grid1的这个文本编辑框就一直在界面上,点击其他列也不能失去焦点。现在定位到了这段代码,删除row1.barcode.toLowerCase() == e.value.toLowerCase() 这段就正常了。miniui已经升级到3.5,还是不行。

Rank: 8Rank: 8

沙发
发表于 2014-12-19 16:27:43 |只看该作者
把你给grid1添加数据的方法贴出来

Rank: 6Rank: 6

板凳
发表于 2014-12-19 16:36:47 |只看该作者
felt 发表于 2014-12-19 16:27
把你给grid1添加数据的方法贴出来

                var rows = grid2.getSelecteds();
                var rows1 = grid1.getData();
                var totalRows = rows1.concat(rows);
                grid1.setData(totalRows);

Rank: 8Rank: 8

地板
发表于 2014-12-19 16:47:04 |只看该作者
q123126 发表于 2014-12-19 16:36
var rows = grid2.getSelecteds();
                var rows1 = grid1.getData();
     ...

复用数据请克隆一下
var newRows=mini.clone(rows)
这样试一下

Rank: 6Rank: 6

5#
发表于 2014-12-19 17:09:59 |只看该作者
本帖最后由 q123126 于 2014-12-19 17:13 编辑
felt 发表于 2014-12-19 16:47
复用数据请克隆一下
var newRows=mini.clone(rows)
这样试一下

改成这样也不行。
                var rows = grid1.getData();
                var rows1 = grid2.getSelecteds();

                var newRows1 = mini.clone(rows1);
                var newRows = mini.clone(rows);

                var totalRows = newRows1.concat(newRows);

                grid1.setData(totalRows);

发现规律是这样的,如果点击文本框最后的那个清空按钮(IE11),让文本框变成空,就可以失去焦点了,不然就不行。然后下一个也是要这样。

Rank: 8Rank: 8

6#
发表于 2014-12-19 17:12:32 |只看该作者
q123126 发表于 2014-12-19 17:09
改成这样也不行。
                var rows = grid1.getData();
                var rows1 = grid2.get ...

那做个重现问题的简单html页面发上来

Rank: 6Rank: 6

7#
发表于 2014-12-19 17:13:57 |只看该作者
本帖最后由 q123126 于 2014-12-19 17:18 编辑
felt 发表于 2014-12-19 17:12
那做个重现问题的简单html页面发上来

发现规律是这样的,如果点击文本框最后的那个清空按钮(IE11),让文本框变成空,就可以失去焦点了,不然就不行。然后下一个也是要这样。

问题定位到更加准确了。
row1.barcode == e.value改成这样也没有问题,变成小写就会出问题,我再测试一下。

Rank: 8Rank: 8

8#
发表于 2014-12-19 17:21:43 |只看该作者
q123126 发表于 2014-12-19 17:13
发现规律是这样的,如果点击文本框最后的那个清空按钮(IE11),让文本框变成空,就可以失去焦点了,不然就 ...

是不是数据问题,你的row1.barcode不是字符串啊

Rank: 6Rank: 6

9#
发表于 2014-12-19 17:23:58 |只看该作者
felt 发表于 2014-12-19 17:21
是不是数据问题,你的row1.barcode不是字符串啊

肯定是字符串,但是这个字符串是类似1234567。不知道是不是这里的问题。
我刚 typeof(row.barcode) 是string。
现在用这个
$.trim(row1.barcode).toLowerCase()
竟然可以了,我竟无言以对。。。

Rank: 6Rank: 6

10#
发表于 2014-12-19 17:29:42 |只看该作者
felt 发表于 2014-12-19 17:21
是不是数据问题,你的row1.barcode不是字符串啊

这个最重要的问题解决了,现在问一个界面显示的问题吧。有的表格列之间的分割线没有了,但是鼠标放上去还能看到可以拉动的标识,拉一下又看到了。宽度是自动宽度。
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Archiver|普加软件

GMT+8, 2024-9-30 08:24 , Processed in 1.056474 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部