2016-04-20 10 views
0

Ich verwende ExtJS 4.2 und folgende Frage:Wie ausblenden identische Einträge in extjs Grid-Spalte?

Ist es irgendwie möglich, doppelte Einträge in einer extjs Rasterspalte zu verbergen?

Ich möchte nicht die Daten im Laden verlieren. Das Datenmodell sollte nicht manipuliert werden. Nur die Aussicht! Zum Beispiel Es gibt 1 Säule mit folgenden Einträgen

Column
A
A
B
B
C
D
E
E

am Ende ist es wie

sein sollte

Spalte
A

B

C
D
E

Gibt es eine Möglichkeit, dies in extjs zu lösen?

Vielen Dank für Ihre Hinweise im Voraus.

+1

Sie können [Renderer] nicht versuchen (https://docs.sencha.com/extjs/4.2.0/#!/api/Ext.grid.column.Column-cfg-renderer). Aber Sie müssen in Ihrem Geschäft kontrollieren, ob die Spaltendaten ein wiederholter Wert sind und kontrollieren, welchen Wert Sie anzeigen möchten und welchen nicht. – qmateub

+0

Danke! Das funktioniert für mich. Ich konnte nicht glauben, dass ich es nicht versucht habe, bevor ich in diesem Thread darum gebeten habe ... :-) – F4k3d

Antwort

1

Hallo und danke qmat.

Meine Lösung sieht so aus:

renderer: function(value, metaData, record, rowIndex, colIndex, store) { 
    var count = 0; 
    var val = ''; 

    //Searching for duplicates, which are already in the column and count them 
    store.each(function(record) { 
    if (record.get('ColName') === value && lastOne === value) { 
     count+=1; 
    } 
    }); 

    //Process and render data like you wish. 
    if(count > 1){ 
    val = ''; 
    } else { 
    val = 'editedValue'; 
    } 
    count = 0; // reset counter 
    lastOne = value; // last added data in column without duplicates. 

    return val; 
} 

Wenn Sie eine einfachere Lösung haben, lassen Sie es mich wissen.

Grüße und nochmals vielen Dank. :-)