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

QQ登录

只需一步,快速开始

查看: 10200|回复: 13

[结贴] 有关grid+gridselect的交互问题

[复制链接]

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
发表于 2018-9-13 10:56:02 | 显示全部楼层 |阅读模式
在grid里面某一列加了一个gridselect,出现的效果是每次下拉选择都要点两次:第一次点击grid上的对应列,出现gridselect组件,第二次点击才触发gridselect出现下拉选项;这样的交互很不友好,要多点一次。请问如何解决这个问题,可以点一次就出现下拉选项?

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
 楼主| 发表于 2018-9-13 15:25:02 | 显示全部楼层
有人回应一下么?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2018-9-13 15:40:01 | 显示全部楼层
grid上的directEdit设置为true
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
 楼主| 发表于 2018-9-13 16:21:17 | 显示全部楼层
directEdit已经是true了,没用的,因为这不是grid自带的select,而是单独放的一个gridselect进去的
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2018-9-14 10:29:37 | 显示全部楼层
grid的点击事件中判断当前操作的列,把焦点设置到单元格或者gridselect看看
http://docs.wex5.com/bex5-ui-question-list-10168/
http://docs.wex5.com/bex5-ui-question-list-10091/
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
 楼主| 发表于 2018-9-14 15:59:52 | 显示全部楼层
两种方式都试了,没有达到我想要的效果。以上的方式只是把焦点定位到了gridselect里面的input框里面去,但下拉并没有弹出。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2018-9-17 11:29:55 | 显示全部楼层
参考
  1.                     var data = this.comp("mainData");
  2.                     var rowID = data.getCurrentRowID();
  3.                     var grid = this.comp("mainGrid");
  4.                     setTimeout(function() {
  5.                     grid.getCell(rowID, "fCode");
  6.                             grid.editCell(grid.getCell(rowID, "fCode"));
  7.                             var td = grid.getCell(rowID, "fCode");
  8.                             $(td).find("input").focus();
  9.                             $(td).find("input").click();
  10.                     }, 5);
复制代码
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
 楼主| 发表于 2018-9-17 13:28:31 | 显示全部楼层
这种做法我之前尝试过,不行,原因有二:
1、grid只有一个onRowClick方法,我无法判断点击的是哪一列,因为只有其中一列有gridselect,我总不能点一行的任何一列,都弹出gridselect的下拉;
2、也正因为是用onRowClick,如果我把上述代码写在onRowClick中,那在$(td).find("input").click();的时候,由于事件冒泡,input的父级又是当前行,所以会引发死循环调用
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36064
发表于 2018-9-17 14:38:38 | 显示全部楼层
1.参考http://docs.wex5.com/bex5-ui-question-list-10141/
2.可以不用click,直接获取gridSelect组件对象,调用showOption()
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

44

主题

196

帖子

705

积分

高级会员

Rank: 4

积分
705
QQ
 楼主| 发表于 2018-9-18 10:22:14 | 显示全部楼层
如何可以获取grid里面的gridSelect组件对象呢?我尝试直接this.comp("gridSelect2").showOption(); 结果界面上没任何变化
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 17:34 , Processed in 0.084918 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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