2016-04-26 4 views
1

Ich benutze extjs 6.0.1 als Frontend und Spring als Backend-Code in meinem Projekt. Ich habe eine Benutzeroberfläche oder eine Seite, die das Baum-Panel verwendet, um die Daten anzuzeigen. Im Folgenden finden Sie den Store und den Modellcode.Wie zeigt man den Zellenwert, der sich von den Geschäftsdatensätzen der Baumansicht in extjs unterscheidet?

Ext.define('SomeTreeStore', { 
extend: 'Ext.data.TreeStore', 
model: 'SomeTreeModel', 
autoSync: false, 
autoLoad: false, 
root: { 
    id: 0, 
    expanded: false, 
    description: 'SomeData' 
}, 
proxy: { 
    type: 'ajax', 
    writer: { 
     writeAllFields: true, 
     allowSingle: false, 
     rootProperty: 'children', 
     clientIdProperty: 'clientId' 
    }, 
    reader: { 
     type: 'json', 
     rootProperty: 'children', 
     successProperty: 'success' 
    }, 
    api: { 
     create: 'rest/test/adddata', 
     read: 'rest/test/getdata', 
     update: 'rest/test/updatedata', 
     destroy: 'rest/test/deletedata' 
    }, 
    headers: { 
     Accept: 'application/json', 
     'Content-Type': 'application/json;charset=utf-8' 
    } 
} 
}); 


Ext.define('SomeTreeModel', { 
extend: 'Ext.data.TreeModel', 
idProperty: 'id', 
identifier: 'negative', 
fields: [ 
    { name: 'id', type: 'int' }, 

    { name: 'item', type: 'string' }, 
    { name: 'data1', type: 'string' }, 
    { name: 'data2', type: 'number' }, 
    { name: 'unit', type: 'string' }, 
    { name: 'Rate', type: 'number' }, 
    { name: 'Amount', type: 'number' } 
] 
}); 

Ich muss die Rate und Menge auf der Basis der Einheit zeigen. z. Wenn Einheit == PM, dann muss ich nur den Wert für Rate und Betrag in der Baumansicht anzeigen, sonst muss ich den leeren Wert oder nichts anzeigen.

Für die gleiche benutze ich unten Code.

{ 
    text: 'Amount', 
    flex: 1.5, 
    sortable: false, 
    dataIndex: 'Amount', 
    align: 'right', 
    renderer: function (value, metaData, record, rowIdx, colIdx, store, view) { 

     if(record.get('unit') == 'PM'){ 
      return Ext.util.Format.number(value, '0.00'); 
     }else{ 
      return ''; 
     } 
    } 

}  

Aber dieser Code wird auch den Speicherwert aktualisieren. Und wenn ich etwas aktualisiere, wird die Datenbank mit Leerwert für Rate und Betrag aktualisiert.

Und ich muss auch erlauben, Rate und Betrag auf der Basis des Wertes der Einheit zu aktualisieren.

Bitte geben Sie mir den Weg, um den Trepanel-Wert anzuzeigen, der sich vom Speicherwert unterscheidet.

Antwort

1

Wie wäre es mit diesem Code?
Um eine Bindung zwischen Zellenwert und Speicher zu vermeiden, wird die Eigenschaft dataIndex nicht verwendet.

{ 
    text: 'Amount', 
    flex: 1.5, 
    sortable: false, 
    //dataIndex: 'Amount', 
    align: 'right', 
    renderer: function (value, metaData, record, rowIdx, colIdx, store, view) { 

     if(record.get('unit') == 'PM'){ 
      //return Ext.util.Format.number(value, '0.00'); 
      return Ext.util.Format.number(record.get('Amount'), '0.00'); 
     }else{ 
      return ''; 
     } 
    } 
} 

Update:
Ich vergaß

zu betrachten Und ich muss auch Geschwindigkeit und Menge auf der Basis des Einheitswert aktualisieren lassen.

Sie müssen den Geschäftswert manuell aktualisieren, wie unten.

{ 
    text: 'Amount', 
    flex: 1.5, 
    sortable: false, 
    //dataIndex: 'Amount', 
    align: 'right', 
    renderer: function (value, metaData, record, rowIdx, colIdx, store, view) { 

     if(record.get('unit') == 'PM'){ 
      var FormattedAmount = Ext.util.Format.number(record.get('Amount'), '0.00'); 
      record.set('Amount', FormattedAmount); // Update the store manually. 

      return FormattedAmount; 
     }else{ 
      return ''; 
     } 
    } 
} 
+0

Dank Yasuyuki Uno es ist Arbeit. aber es gibt ein Problem mit diesem Code, wenn ich den Wert des Bruttopreises und des Bruttobetrages aktualisiere, den es im Geschäft nicht beeinflussen wird. Hast du eine Idee, wie du den Wert aktualisieren und in den Laden bringen kannst? Ich bin neu in extjs vielleicht ist diese Sache für dich klein. –

+0

@AnkitJain Da ich nicht gut in Englisch bin, bin ich mir nicht sicher, ob ich richtig verstehe ... Wie auch immer ich aktualisierte Antwort. Hoffe, es funktioniert und hilft. –

+0

Das gleiche möchte ich. Danke, Mann. –

Verwandte Themen