jQuery MiniUI

标题: grid.scrollIntoView(grid.getSelected()); 无效 ~ [打印本页]

作者: 懂三井    时间: 2015-12-30 11:43:14     标题: grid.scrollIntoView(grid.getSelected()); 无效 ~

grid.scrollIntoView(grid.getSelected());
定位滚动条的这个方法没有效果 ?


作者: felt    时间: 2015-12-30 14:01:09

有效
你有选中行吗,选中行在不在可视区域
作者: 懂三井    时间: 2015-12-30 15:29:53

本帖最后由 懂三井 于 2015-12-30 15:48 编辑
felt 发表于 2015-12-30 14:01
有效
你有选中行吗,选中行在不在可视区域

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

刚测试了一下.. 能得到row的值..
如下图:
[attach]6994[/attach]

                  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';
                });

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


作者: felt    时间: 2015-12-30 15:56:02

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

请刷新完重新获取选中行
作者: 懂三井    时间: 2015-12-30 16:11:07

felt 发表于 2015-12-30 15:56
请刷新完重新获取选中行

选不中行 ..

row是之前选中的行对象

grid.setSelected(row); 选不中

grid.setSelected(grid.getRow(grid.indexOf(row)));也选不中
作者: 懂三井    时间: 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 ?

[attach]6995[/attach]



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

谢谢版主
作者: felt    时间: 2015-12-30 16:41:27

懂三井 发表于 2015-12-30 16:28
console.info(row);
console.info(grid.indexOf(row));
console.info(index);

刷新前后行都是不一样的
你可以保存一个行的唯一字段,刷新后再根据这个数据再获取行
作者: 懂三井    时间: 2015-12-30 16:49:14

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

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

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

谢谢版主

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




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2