Как добавить записи в json-store - PullRequest
12 голосов
/ 04 августа 2010
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' } ]

    }                                                    
});

Я хочу добавить данные в конце этого хранилища, но я совершенно сбит с толку. Я добавил следующий код, но он не работает.

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

Но я не думаю, что моя концепция прояснена. Пожалуйста, покажите, как это можно сделать.

Ответы [ 3 ]

16 голосов
/ 04 августа 2010

Вам необходимо определить тип записи, создать ее и у нее, например:

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

Затем:

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

Затем:

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

Помните, что к тому времени, когда данные находятся в хранилище, они не в том формате, в котором вы их отправили, а в объектах записи.

6 голосов
/ 20 октября 2011

См. Свойство recordType в JsonStore.Это функция, которую можно использовать в качестве конструктора записей для рассматриваемого магазина.Используйте это так:

var newRecord = new myStore.recordType(recordData, recordId);
myStore.add(newRecord);
5 голосов
/ 04 августа 2010

Я также нашел простое решение для этого:

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

Вот что мне нужно добавить, это прослушиватели, так как при загрузке данных создается тип записи, и вы можете добавлять поля в качестве данных.столько, сколько ты хочешь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...