2016-11-11 4 views
1

Ist es möglich, die Sichtbarkeit der bestimmten Datentabelle Zeile zu überprüfen?Wie überprüft man die Sichtbarkeit einer Datentabelle?

Ich fand nur isColumnVisible und getVisibleCount, aber beide von ihnen sind irrelevant und soweit ich sehen kann, gibt es keine solche Lösung für die Zeilen.

Wie kann ich so etwas tun? Zum Beispiel kann ich nach der Filterung alle Datenelemente bekommen, aber das ist alles. Es ist die einzige Idee, die ich habe kommen mit:

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

Antwort

0

Für den Anfang Sie console.log(this) zu console.log(keys[i])

+0

Agree, habe ich die Probe fixiert. – Shere

1

Ok es fühlt sich an wie ein langer Weg, dies zu tun, ändern müssen. Und ich habe nichts anderes getan, als es einfach zur Arbeit zu bringen.

Aber Sie werden alle IDs Sie müssen in this.data.order so der folgende Code stellt alle gefilterten Elemente in 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); 

Nicht sagen, seine perfekte finden. Aber es ist ein Anfang ...

+0

Ein toller Start und funktioniert wie gebraucht, danke! Ich habe auch über die Existenz von Knoten in DOM nachgedacht, aber es scheint auch ein ziemlich ungewöhnlicher Ansatz zu sein. Ich bin mir nicht sicher, ob ich Erfolg haben werde. Danke noch einmal. – Shere

+0

Schließlich habe ich festgestellt, dass 'getItemNode' (ich dachte, ich brauche' getNode' der gesamten Datentabelle verwenden, aber diese Methode ist hier nutzlos). Der Punkt ist, dass die Knoten der unsichtbaren Elemente "undefiniert" sind, also nehme ich an, dass es mir eine genaue Information über die Sichtbarkeit gibt. – Shere

0

Als Alternative zu dem gemacht data-based solution von @ShaunParsons fand ich, dass es möglich ist, die Sicht durch die getItemNode Funktion zu überprüfen, da die Knoten der unsichtbaren Elemente sind 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]))    
     }    

    } 
Verwandte Themen