2012-03-27 16 views
1

Ich habe aa Gridpanel, das die folgenden Felder hat:EXTJS Gridpanel und Spalte Daten defaults

Namen ID Adresse Home_Phone Handy

Einige Datensätze, die in den Laden zurückgeben alle Daten für einige dieser Felder können nicht haben, Anstatt eine leere Spalte für diesen Datensatz im Raster anzuzeigen, möchte ich einen Standardwert von "N/A" anzeigen.

So würde ich

Namen ID Adresse Home_Phone Handy Shaun 2 My Address N/AN/A

Vielmehr haben dann:

Namen ID Adresse Home_Phone Handy Shaun 2 My Address

Ich kenne zwei Möglichkeiten, dies zu tun:

1) Im Backend, wenn die Feld existiert nicht, geben Sie für diese Spalte im JSON ein "N/A" zurück. 2) Erstellen Sie eine Vorlage mit einer Methode, die überprüft, ob der Datensatz den Wert nicht enthält return "N/A".

Meine Frage ist, gibt es eine einfachere Möglichkeit, die Rasterspalte zu sagen, wenn kein Wert im Datensatz gefunden wird, die Standard "N/A"?

Antwort

5

Sie können einen Renderer für Ihre Spalten hinzufügen. Sie fügen entweder einen Renderer für jede Spalte hinzu oder Sie können eine eigene Spalte definieren, wenn Sie mehr Spalten mit diesem Verhalten haben.

// fügen Sie diese für jede Spalte config (arbeitet für Nullwerte und leere Strings)

{ 
    renderer: function(value){ 
     if (Ext.isEmpty(value)) { 
      return 'N\\A'; 
     } 
     return value; 
    } 
} 

oder den Renderer auf eine Komponente hinzufügen, die die Spalte und verwenden, die in der gesamten Anwendung erstreckt. Es ist einfacher, dies am Frontend zu tun, anstatt das Backend zu modifizieren und extra unnötige Daten wie 'N \ A' zu senden.

Hoffnung Es hilft.

+0

Sie haben geschweige Klammern geschweige ')' in Ihrer Bedingung: 'if (Ext.isEmpty (Wert) {'. Auch sollten Sie Slash wie folgt entkommen: ''N \\ A'' – RomanPerekhrest

+0

Wäre es nicht war nützlicher, um diese 4 Jahre alte Antwort anstelle dieses Kommentars zu bearbeiten? – nscrob

+0

Ihre Antwort wurde als die beste Antwort akzeptiert - also führen Sie es in die angemessene Form. (Wenn ich solche Fehler gemacht habe, habe ich völlig erwartet, dass eine solche Antwort von der 'gerügt wird' andere Jungs - Und ich wurde solche Fälle angetroffen. Gefällt mir nicht downvotes?! Ich auch. – RomanPerekhrest