如何检查数据表行的可见性

How to check the visibility of a datatable row?

本文关键字:数据表 可见性 检查 何检查      更新时间:2023-09-26

是否可以检查特定数据表行的可见性?

我只发现isColumnVisiblegetVisibleCount,但它们都是不相关的,据我所见,没有这样的解决方案的行。

我怎么能这样做呢?例如,在过滤之后,我可以得到所有数据项,但仅此而已。这是我唯一想到的办法:

   onAfterFilter:function(){
      var dataId = this.data.pull;
      var keys = Object.keys(dataId);          
      for (var i = 0; i < keys.length; i++){
        console.log(this)
      }            
    }
http://webix.com/snippet/c6ecdcd5

好吧,感觉这是很长的一段路。除了让它工作,我什么也没做。

但是您将在this.data.order中找到所需的所有id,因此下面的代码将所有过滤的项目放入filteredObjs

var dataId = this.data.pull;
var keys = Object.keys(dataId);
var filteredIds = this.data.order;
var filteredObjs = [];
for (var i = 0; i < filteredIds.length; i++) {
    for (var j = 0; j < keys.length; j++) {
        if (filteredIds[i] === dataId[keys[j]].id) {
            filteredObjs.push(dataId[keys[j]]); 
        }
    }
}
console.log(filteredObjs);

不是说它很完美。

首先需要将console.log(this)更改为console.log(keys[i])

作为@ShaunParsons提出的基于数据的解决方案的替代方案,我发现可以通过getItemNode函数检查可见性,因为不可见项目的节点是undefined

http://webix.com/snippet/4f31a5b5

    onAfterFilter:function(){
      var dataId = this.data.pull;
      var keys = Object.keys(dataId);                   
      for (var j = 0; j < keys.length; j++) {
        console.log(this.getItemNode(keys[j]))            
      }            
    }