起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3873|回复: 7

[处理中5] grid怎么让一个单元得到焦点?

  [复制链接]

56

主题

233

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2014-9-20 14:51:10 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: Oracle 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 8 浏览器: IE10
grid怎么让一个单元得到焦点?我用了onLastEditorPressEnter新建一行数据,但是同时焦点也就转移到了下一个单元格。请问怎么用js让一个单元得到焦点?
11.jpg

45

主题

4492

帖子

3960

积分

论坛元老

Rank: 8Rank: 8

积分
3960
QQ
发表于 2014-9-20 20:35:10 | 显示全部楼层
1、设置焦点
设置grid组件的焦点通过调用grid组件的setActive方法实现
如 grid.setActive(true);

应用场景:主从grid,主表移动记录后,由于刷新了从grid,因此焦点到了从grid,如果还希望主grid有焦点,在主grid的onAfterIndexChanged事件中加下面的代码即可
event.grid.setActive(true);

2、设置单元格的焦点
调用grid组件的selectCell方法实现
var grid = justep.xbl("grdMain").grid;
grid.selectCell(1,1,true,true,true,true);
向前进,向前进,我们……
回复 支持 0 反对 1

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-9-20 15:39:32 | 显示全部楼层
新建数据后,执行下面的代码
  1.         var grid = justep.xbl("grid_id").grid;
  2.         grid.selectCell(grid.instance.getLength() - 1,0, true);//0表示第一列,1表示第二列
  3.         grid.editCell();
复制代码
QQ:179785966
回复 支持 反对

使用道具 举报

418

主题

1339

帖子

3011

积分

论坛元老

Rank: 8Rank: 8

积分
3011
QQ
发表于 2014-9-21 13:08:53 | 显示全部楼层
给你提供一个实现方向键移动表格焦点的代码吧
  1. function keydown(e) {
  2.     // 兼容各个浏览器
  3.     var e = e || event;
  4.     var currKey = e.keyCode || e.which || e.charCode;
  5.     fag = true;
  6.     var mygrid = justep.xbl('grdMain').grid; // 得到grid组件
  7.     var rowInd = mygrid.getIndex(); // 行索引
  8.     var colInd = mygrid.getSelectedCellIndex(); // 列索引
  9.     switch (currKey) {
  10.     case 37:// 方向键左
  11.         mygrid.editStop();
  12.         mygrid.selectCell(rowInd, --colInd, true);
  13.         mygrid.editCell();
  14.         break;
  15.     case 38://方向键上
  16.         mygrid.editStop();
  17.         mygrid.selectCell(--rowInd, colInd, true);
  18.         mygrid.editCell();
  19.         break;
  20.     case 39:// 方向键右
  21.         mygrid.editStop();
  22.         mygrid.selectCell(rowInd, ++colInd, true);
  23.         mygrid.editCell();
  24.         break;
  25.     case 40:// 方向键下
  26.         mygrid.editStop();
  27.         mygrid.selectCell(++rowInd,colInd, true);
  28.         mygrid.editCell();
  29.         break;
  30.     }
  31. }
  32. function keyup(e) {
  33. }
  34. document.onkeydown = keydown;
  35. document.onkeyup = keyup;
复制代码
mygrid.selectCell(--rowInd, colInd, true);根据行列索引获得焦点



回复 支持 反对

使用道具 举报

418

主题

1339

帖子

3011

积分

论坛元老

Rank: 8Rank: 8

积分
3011
QQ
发表于 2014-9-21 13:10:35 | 显示全部楼层
gird相关的文档可以下载参考
http://bbs.justep.com/thread-63611-1-1.html
回复 支持 反对

使用道具 举报

56

主题

233

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2014-9-22 09:10:18 | 显示全部楼层
本帖最后由 cactus78 于 2014-9-22 10:43 编辑
yinlun 发表于 2014-9-20 15:39
新建数据后,执行下面的代码

非常感谢大家,大家上面说的好像都是对的,可是我的grid见鬼了。这段代码是起作用的:grid.selectCell(grid.instance.getLength() - 1, 0, true, true, true);
我把那个0改成1就会从“备注”那一列得到焦点,我这个grid是从第二列算0?有人遇到过这种情况吗?


11.jpg

22.jpg


回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-9-22 11:14:38 | 显示全部楼层
你好楼主,您反馈的这个现象通过验证是产品缺陷,我们已提交到产品组(内部编号:2014092200006),感谢楼主的支持与配合。
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

56

主题

233

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
 楼主| 发表于 2014-9-22 21:27:11 | 显示全部楼层
确实好像是不稳定,现在我试又那段代码又好使了。希望X5越来越完善
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 13:49 , Processed in 0.085449 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表