2010-08-04 10 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' } ] 

    }              
}); 

Chcę tylko dodać dane na końcu tego sklepu, ale jestem całkowicie zdezorientowany, dodałem do niego poniższy kod, ale nie działało.
Jak dodać rekordy w json-sklepie

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

Ale nie sądzę, moje pojęcie są wyczyszczone, każdy organ proszę pokazać jakiś sposób, jak to zrobić.

Odpowiedz

18

Trzeba określić typ rekordu, utwórz go i na to, np:

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

Następnie:

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

Następnie:

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

Pamiętaj przez czas Dane znajdują się w sklepie, ale nie w tym samym formacie, w jakim zostały wysłane, ale w obiektach Record.

+0

thanyou bardzo dużo LIoyd, również mam wymyślić sposób, ja też dodam swoją odpowiedź, jeszcze raz bardzo dziękuję –

5

Mam również zorientowali się proste rozwiązanie do tego:

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

Oto co mam do dodania jest to słuchacze jak podczas ładowania danych stworzy typ rekordu i u można dodać pola danych jak wielu, jak chcesz

6

Zobacz właściwość recordType w JsonStore. Jest to funkcja, która może być używana jako konstruktor rekordów dla danego sklepu. Użyj go tak:

var newRecord = new myStore.recordType(recordData, recordId); 
myStore.add(newRecord); 
Powiązane problemy