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

QQ登录

只需一步,快速开始

月亮和乌龟

注册会员

4

主题

16

帖子

72

积分

注册会员

积分
72
最新发帖
月亮和乌龟
注册会员   /  发表于:2021-8-3 16:09  /   查看:2628  /  回复:8
1金币
我给某一列的cell设置了z-index属性。而这一列恰好还是冻结列的话。纵向滚动就会出问题。tableHeader就会被覆盖

theGrid.formatItem.addHandler(function (s, e) {
        if (e.panel == s.cells) {
            if(e.col === 0){
                e.cell.style.zIndex = 50;
            }
        }else{
            if(e.col === 0){
                e.cell.style.zIndex = 100;
            }
        }
    })


这里是直接给前两列包括header设置了zindex(如果分开设置的话,给header设置的zindex比数据列的zindex大也是一样)。


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

最佳答案

查看完整内容

你是说会将行头遮住吗,像下图这样吗 我这里测试按照我发给你的代码并不会,前提是,你不能设置一个200这么大的zindex,可以看我第二次发给你的代码,zindex只设置为了3,2,1 ,第三列的zindex只是1

8 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-3 16:10:00
来自 7#
你是说会将行头遮住吗,像下图这样吗


我这里测试按照我发给你的代码并不会,前提是,你不能设置一个200这么大的zindex,可以看我第二次发给你的代码,zindex只设置为了3,2,1 ,第三列的zindex只是1

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-3 17:04:16
2#
你这边设置zindex的原因是什么,是需要解决什么问题?

如果解决现在的问题的话,可以给冻结行也设置上更大的zindex

  1.     theGrid.formatItem.addHandler(function (s, e) {
  2.         if (e.panel == s.cells) {
  3.             if(e.row<=theGrid.frozenRows){
  4.                 e.cell.style.zIndex=300;
  5.             }else if(e.col === 0){
  6.                 e.cell.style.zIndex = 200;
  7.             }

  8.         }else{

  9.         }

  10.     })
复制代码

回复 使用道具 举报
月亮和乌龟
注册会员   /  发表于:2021-8-3 17:14:08
3#
我第三列里面的内容过长需要跨cell显示,所以设置了那个cell的zindex。
但是设置了第三列的zindex之后。前两列冻结列在横滚的时候,就会被第三列盖住,我就也把前两列的zindex设置上了。紧接着就出现了,上述的问题

本帖子中包含更多资源

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

x
回复 使用道具 举报
月亮和乌龟
注册会员   /  发表于:2021-8-3 17:15:42
4#
Richard.Ma 发表于 2021-8-3 17:04
你这边设置zindex的原因是什么,是需要解决什么问题?

如果解决现在的问题的话,可以给冻结行也设置上更 ...

请看最新回复
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-3 17:34:32
5#
明白了 ,那你现在需要的优先级应该是冻结行列交叉的右上角>冻结行=冻结列>第三列>普通单元格

  1.     theGrid.formatItem.addHandler(function (s, e) {
  2.         if (e.panel == s.cells) {
  3.             if(e.row<theGrid.frozenRows&&e.col<theGrid.frozenColumns){
  4.                 e.cell.style.zIndex=3;
  5.             }
  6.             else if(e.row<theGrid.frozenRows||e.col<theGrid.frozenColumns){
  7.                 e.cell.style.zIndex=2;
  8.             }
  9.             else if(e.col === 2){
  10.                 e.cell.style.zIndex = 1;
  11.             }

  12.         }else{

  13.         }

  14.     })
复制代码
回复 使用道具 举报
月亮和乌龟
注册会员   /  发表于:2021-8-3 17:39:38
6#
Richard.Ma 发表于 2021-8-3 17:34
明白了 ,那你现在需要的优先级应该是冻结行列交叉的右上角>冻结行=冻结列>第三列>普通单元格

可是现在我没有冻结行,只有冻结列。你说的方式如果有冻结行的话确实可行。但是没有冻结行的话,明细头就会被盖住,这个时候给明细头设置zindex的话也是不好使的
回复 使用道具 举报
月亮和乌龟
注册会员   /  发表于:2021-8-3 19:12:03
8#
Richard.Ma 发表于 2021-8-3 17:58
你是说会将行头遮住吗,像下图这样吗

问题解决了,谢谢。确实是因为zindex设置的过大造成的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-4 09:14:24
9#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部