找回密码
 立即注册

QQ登录

只需一步,快速开始

vanguard

高级会员

19

主题

44

帖子

1811

积分

高级会员

积分
1811

活字格认证微信认证勋章

vanguard
高级会员   /  发表于:2015-11-2 15:10  /   查看:8591  /  回复:8
您好,通过selectionMode : wijmo.grid.SelectionMode.ListBox   设置,使用ctrl健多选后,使用  flexGrid.selection  获取到的结果只有一条  , 这是为什么呢?

如下图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-11-2 15:51:00
沙发
回复 1楼vanguard的帖子

谢谢对该问题的反馈。
flexgrid设置为ListBox,并且使用ctrl键多选,获取到的区域是不连续的区域,并不是一片range,而是多区域。
flexgrid的selection获取到的是一个区域cellrange,flexgrid无法获取到多个不同区域的range。
因此对于该问题,针对这种特殊的情形,您只能通过判断行是否被选择来解决。

我写了段判断被选择行并获取数据的代码,仅供参考:
  1.    function getSelectionRanges() {
  2.                 for(var r=0;r<grid.rows.length;r++)
  3.                 {
  4.                     if(grid.rows[r].isSelected)
  5.                     {
  6.                         var item=grid.rows[r].dataItem;
  7.                     }
  8.                 }

  9.             }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
vanguard
高级会员   /  发表于:2015-11-2 16:06:00
板凳
回复 2楼Alice的帖子

如果是这样的话  ,  我其实只选择两行,但是grid.length = 1000  那我就的循环1000次,是不是这样的?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-2 17:07:00
地板
回复 3楼vanguard的帖子

虽然看起来选择了两行,但实际上是多区域的。
除了上面所说的循环去判断的方法,还可以通过监听键盘的事件,当ctrl键和鼠标按下选择了一行的时候,就将这行记录下来。所有的选择都添加到一个集合中使用。

当然,这也是有一定复杂度的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
vanguard
高级会员   /  发表于:2015-11-2 20:30:00
5#
回复 4楼Alice的帖子

您好,那通过监听键盘的事件,该如何实现这个功能?有个demo吗?谢谢!!!!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-3 09:59:00
6#
回复 5楼vanguard的帖子

根据您的描述,您不知道如何监听事件来记录多行。
您的需求我们收到了,稍后我反馈给您。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-3 14:40:00
7#
回复 5楼vanguard的帖子

如下代码可以监听键盘消息,但是对于网页前端,对键盘消息的使用需要谨慎,有可能不同的浏览器会出现问题。
  1. var host = grid.hostElement;
  2. host.addEventListener('', function (e) {
  3.                 if (e.which = 17)
  4.                 {
  5.                     alert("ctrl key.")
  6.                 }
  7.                 });
复制代码


除了这些解决方案。我已经将问题提交到产品组,如果有进一步的反馈会通知您。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
vanguard
高级会员   /  发表于:2015-11-3 16:48:00
8#
好的,非常感谢,期待你们更合理的解决方案。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-3 17:16:00
9#
回复 8楼vanguard的帖子

和产品组进行了讨论,目前的解决方案就是2楼贴出的方法。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部