请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

いつまで

注册会员

1

主题

2

帖子

15

积分

注册会员

积分
15
  • 50

    金币

  • 1

    主题

  • 2

    帖子

最新发帖
いつまで
注册会员   /  发表于:2025-1-20 11:21  /   查看:45  /  回复:3
本帖最后由 いつまで 于 2025-1-22 15:57 编辑

使用的是VUE框架,关于grid的selection,求助下面几个问题
问题①:

selectionChanging事件中,单元格的值不为空的时候,这个单元格,才能被选中,否则不能被选中。代码如下:

function selectionChanging(grid, events) {
  const cellContent = grid.getCellData(events.row, events.col)

  if(cellContent.trim() !== ''){
    events.cancel = false

  }else{
    events.cancel = true
  }
}
按照上面设置后,在【events.cancel = false】的 单元格的click方法中,就没法再给Grid.selectedRanges重新设定范围的时候,就会报错,说指定值应该为正数。
if(xxxxxx){
  Grid.selectedRanges = [new wjGrid.CellRange(-1,-1,-1,-1)]
}
[es5-esm.js:14  Uncaught Positive number expected.]
有没有办法可以重新给selectedRanges设值,且不报错的方法?
问题②:
grid的selection有个默认的背景色,被选中的单元格是深蓝色背景,可以取消这个默认的背景色吗?选中的时候,看不出任何背景色效果。
如果不能取消,可以重新设置吗?
奇数行和偶数行的背景色是一行白色,一行灰色。
可以根据奇偶行,将selection默认的背景色和奇偶行的背景色设成一样的,这样看起来好像也就没有selection的背景色,这个可以实现吗?

例如:当我选择第二行,第二列时,不表示默认的蓝色背景色







本帖子中包含更多资源

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

x

3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-1-21 14:11:51
沙发
1。报错的是你自己的代码grid.getCellData(events.row, events.col),你都设置成-1了,这个getCellData自然没法获取到值,参数是需要非负数的

另外,你在selectionChanging中又去设置selection,本身就是不合理的。这会导致无线循环递归。

2你可以尝试加上这两个style,这样选中的单元格和active单元格都和普通单元格的样式一样了
  1. .wj-state-active {
  2.   color: black!important;
  3.   background-color: white !important;
  4. }
  5.   .wj-state-selected {
  6.       color: black!important;
  7.   background-color: white !important;
  8. }
复制代码


2
回复 使用道具 举报
いつまで
注册会员   /  发表于:2025-1-21 14:35:18
板凳
感谢回答
关于问题①,我想再确认下
另外,你在selectionChanging中又去设置selection,本身就是不合理的。这会导致无线循环递归。

我在selectionChanging中并没有设置selection,在selectionChanging只设置了Chang事件是否取消(events.cancel = true),在我自己绑定的click事件中,对selection进行重新设置,这样也会导致无线循环递归吗?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2025-1-22 09:06:01
地板
不好意思,看错了你上面的描述了,只要不是在selectionChanging中又去设置selection,不会导致递归的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部