2016-09-02 1 views
1

Beim Erstellen der Spaltenwerte von GridPanel muss ich nach einem Feld suchen, wenn dieses Feld keinen Wert hat. Es sollte nach einem anderen Feld suchen und es als Spaltenwert rendern. Nun könnten wir gemäß ExtJS6 docs ein einzelnes Datenattribut an dataIndex übergeben und den Wert über die gerenderte Funktion formen. Es wird jedoch nicht erwähnt, wie man das Fallback-Attribut verwenden kann, wenn das erwähnte Feld keinen Wert hat.ExtJS6: Übergeben des gesamten Objekts oder zweier Felder in den Spalten des gridpanels

Hier ist Snippet:

{ 
    text: 'Title', 
    flex: 1, 
    dataIndex: '<how-to-pass-object-itself-or-two-fields>', 
    renderer: function(value, metaData) { 
    return '<i class="fa fa-bars"></i>' + value; 
    } 
} 

Antwort

2

Der Renderer-Funktion mehr in-Parameter.

Sie können alle Felder aus dem Datensatz entfernen.

var DEFAULT_VALUE = ''; 

{ 
    dataIndex : 'a' // or could be 'b', or 'c' or etc… 
    renderer: function(value, metaData, record, rowIndex, colIndex, store, view) { 
     var fieldA = record.get('a'); 
     var fieldB = record.get('b'); 
     var fieldC = record.get('c'); 

     // … 

     return value || DEFAULT_VALUE; // ? 
    } 
} 

In der return-Anweisung, ersetzen Sie einfach DEFAULT_VALUE mit einer Ihrer anderen Feldwerte oder einen tatsächlichen Standardwert.

1

Wenn Ihr Grid auf der Clientseite sortierbar ist, sollten Sie beim Verwenden von renderer zum Rendern verschiedener Datensatzwerte in Ihrer Spalte vorsichtig sein.

Sie können auch convert Methode in Ext.data.field.Field

betrachten
Verwandte Themen