• 数据模型dataModel遍历图元时并且要移除指定时,不能在遍历循环中dm.remove(),需要做好标记在新的循环中移除,否则会影响前面循环遍历本身!


    代码如下所示:

    JavaScript
    let toberemoved = []
    cache.table.getColumnModel().getDatas().forEach((child,index) =>{
        if(index < data.ca('columnWidths').length) {
            console.log(cache.table.getColumnModel().getDatas())
            child.setWidth(data.ca('columnWidths')[index]);
        }
        if(index < nodeData.ca('columns').length){
            let columnData = nodeData.ca('columns')[index]
            columnData.displayName && child.setDisplayName(nodeData.ca('showColumnIndex') ? index + ':' + columnData.displayName : columnData.displayName)
            child.setAlign(data.ca('centerAlign') ? 'center' : 'left');
            //单元格字体及颜色
            let defaultColor = nodeData.ca('tableTextColor')[1];
            child.getLabelColor = (value, data, state)=>{
                if(value){    //data.getId() == 2 && index == 1,指定某行某列的字体颜色!
                    let cb = new Function('return ' + nodeData.ca('columnDataFunc'))()
                    let ret = cb && cb(nodeData,data,child,index,value)
                    let colortmp = ret ? ret : defaultColor;
                    return colortmp;
                }
                else{
                    return defaultColor;
                }
            }
        }else{
            //记录需要被移除的图元,注意不能直接在这里移除,会影响未完成的循环!
            toberemoved.push(child);
        }
    })

    //根据标记移除图元
    toberemoved.forEach((child,index)=>{
         cache.table.getColumnModel().remove(child);
    })

  • 相关阅读:
    VScode如何调节编辑器字体大小
    STM32 float浮点数转换成四个字节
    NumPy矩阵对象介绍及方法
    Mysql常见日志作用
    多维数组的【】和多级指针*转化推演
    C++11更新内容(2)--完美转发--默认移动构造/移动赋值--1116
    RabbitMQ 安装 示例 全面了解有这一篇就够了
    【Rust—LeetCode题解】1656. 设计有序流
    LeetCode 75 part 07 队列
    【11】二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?
  • 原文地址:https://blog.csdn.net/IOTOS/article/details/127108778