jQuery MiniUI

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

grid.scrollIntoView(grid.getSelected()); 无效 ~ [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2015-12-30 11:43:14 |只看该作者 |倒序浏览
grid.scrollIntoView(grid.getSelected());
定位滚动条的这个方法没有效果 ?

Rank: 8Rank: 8

沙发
发表于 2015-12-30 14:01:09 |只看该作者
有效
你有选中行吗,选中行在不在可视区域

Rank: 2

板凳
发表于 2015-12-30 15:29:53 |只看该作者
本帖最后由 懂三井 于 2015-12-30 15:48 编辑
felt 发表于 2015-12-30 14:01
有效
你有选中行吗,选中行在不在可视区域

我是想实现这样的功能:
datagrid有很多数据, 我拉动滚动条到最后一条,选中,弹出window编辑这条数据,完了之后刷新datagrid,再定位到这条数据 ..
突然想到, 是不是刷新后,保存row数据的变量又没了导致这个方法无效?

刚测试了一下.. 能得到row的值..
如下图:


                  grid.load({
                        'args2zwdt.ld_name':leader_name,
                        'args2zwdt.ld_job':leader_job,
                        'args2zwdt.dt_content':dt_content
                    },function(){
                            console.info(index);//如上图:14
                            console.info(row);//
                            grid.expandRowGroup(index);  //这句代码能有效.. 能展开index/id为14分组
                            grid.scrollIntoView(row); //这句无效, 我选中的是最后一条记录,但滚动条还是在顶部,上图能得到row
                            index = 'all';
                            row = 'none';
                });

版主你说的"选中行在不在可视区域" 是什么意思 ?  我刷新后, 最后一条数据肯定不在可视区域的, 所以才要把滚动条定位到底部

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

地板
发表于 2015-12-30 15:56:02 |只看该作者
懂三井 发表于 2015-12-30 15:29
我是想实现这样的功能:
datagrid有很多数据, 我拉动滚动条到最后一条,选中,弹出window编辑这条数据,完了之 ...

请刷新完重新获取选中行

Rank: 2

5#
发表于 2015-12-30 16:11:07 |只看该作者
felt 发表于 2015-12-30 15:56
请刷新完重新获取选中行

选不中行 ..

row是之前选中的行对象

grid.setSelected(row); 选不中

grid.setSelected(grid.getRow(grid.indexOf(row)));也选不中

Rank: 2

6#
发表于 2015-12-30 16:28:04 |只看该作者
本帖最后由 懂三井 于 2015-12-30 16:42 编辑
felt 发表于 2015-12-30 15:56
请刷新完重新获取选中行

console.info(row);
console.info(grid.indexOf(row));
console.info(index);

row和index是两个分别用来保存行对象和分组id的变量
刷新前刷新后的值如下.. row对象没变, 但是刷新后的行号变为-1 ?





搞定了.. 不知道为什么刷新后row对象能保存, 但是通过行对象不能得到之前的行号..
所以, 前面保存行对象换成直接保存行号.. 解决

谢谢版主
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

7#
发表于 2015-12-30 16:41:27 |只看该作者
懂三井 发表于 2015-12-30 16:28
console.info(row);
console.info(grid.indexOf(row));
console.info(index);

刷新前后行都是不一样的
你可以保存一个行的唯一字段,刷新后再根据这个数据再获取行

Rank: 2

8#
发表于 2015-12-30 16:49:14 |只看该作者
felt 发表于 2015-12-30 16:41
刷新前后行都是不一样的
你可以保存一个行的唯一字段,刷新后再根据这个数据再获取行 ...

恩, 你这个方法应该是可行的..

之前不知道为什么刷新后row对象能保存, 但是通过行对象不能得到之前的行号..
所以, 前面保存行对象换成直接保存行号.. 解决

谢谢版主

另外, 刚才测试了下,定位行之前不再进行选中也是可以的

Archiver|普加软件

GMT+8, 2024-10-2 14:33 , Processed in 1.067747 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部