2010-08-04 11 views
12
var store = new Ext.data.JsonStore({ 
    id:'jfields', 
    totalProperty:'totalcount', 
    root:'rows', 
    url: 'data.php', 
    fields:[{ name:'jfields' }, 
      { name:'firstyear' , mapping :'firstyear' , type:'float' }, 
      { name:'secondyear', mapping :'secondyear', type:'float' }, 
      { name:'thirdyear' , mapping :'thirdyear' , type:'float' }, 
      { name:'fourthyear', mapping :'fourthyear', type:'float' }, 
      { name:'fifthyear' , mapping :'fifthyear' , type:'float' } ] 

    }              
}); 

Ich möchte Daten am Ende für diesen Laden hinzufügen, aber ich bin total verwirrt, was ich getan habe, ich füge den folgenden Code, aber nicht funktioniert.
Hinzufügen von Datensätzen im JSON-Store

listeners: { 
    load : function(){ 
     BG_store.add([{"jfields":"Monthly","firstyear":22.99,"secondyear":21.88,"thirdyear":21.88,"fourthyear":22.99,"fifthyear":21.88}]); 
    } 
} 

Aber ich glaube nicht, mein Konzept gelöscht, bitte jeder Körper eine gewisse Art und Weise zeigen, wie es zu tun.

Antwort

18

Sie benötigen einen Datensatztyp zu definieren, es schaffen und es an, zB:

TaskLocation = Ext.data.Record.create([ 
    {name: "id", type: "string"}, 
    {name: "type", type: "string"}, 
    {name: "type_data", type: "string"}, 
    {name: "display_value", type: "string"} 
]); 

Dann:

var record = new TaskLocation({ 
    id: Ext.id(), 
    type: "city", 
    type_data: "", 
    display_value: "Brighton" 
}); 

Dann:

my_store.add(record); 
my_store.commitChanges(); 

durch die Zeit Denken Sie daran, die Die Daten befinden sich im Speicher und nicht im selben Format, in dem Sie sie gesendet haben, sondern in Record-Objekten.

+0

thanyou sehr viel LIoyd, auch ich habe herausgefunden, wie ich meine Antwort auch hinzufügen, noch einmal Vielen Dank –

5

Ich habe gedacht, auch eine einfache Lösung dieses Problems aus:

listeners: { 
    load: function(xstore , record , option) { 
     var u = new xstore.recordType({ jfields : 'monthly' }); 
     xstore.insert(record.length, u); 
    } 
} 

Hier ist, was ich hinzufügen müssen, ist diese Zuhörer als wenn die Daten lädt sie den Satztyp erstellen und u können Felder als Daten hinzufügen, viele wie Sie wollen

6

Siehe die recordType Eigenschaft in der JsonStore. Es ist eine Funktion, die als Datensatzkonstruktor für den betreffenden Speicher verwendet werden kann. Verwenden Sie es wie folgt:

var newRecord = new myStore.recordType(recordData, recordId); 
myStore.add(newRecord); 
Verwandte Themen