Extjs 4 показывает данные JSON (по запросу) в сетку?

После достижения URL-адреса, как показать эти данные в сетке, autoLoad: true, загружает только первый определенный URL-адрес, но как «динамически» отображать загруженный JSON в сетку? Перезагрузить данные с помощью вновь вызванного JSON?

buttons: [{
   text: 'Load1',
   handler:function(){
      myStore.getProxy().url = 'app/kontaktGrid1.json';
      myStore.load();
      grid.getView().refresh();
}},{
   text: 'Load2',
   handler:function(){
      myStore.getProxy().url = 'app/kontaktGrid2.json';
      myStore.load();
      grid.getView().refresh();
}}]

Ext.define('app.gridStore', {
     extend: 'Ext.data.Model',
     fields: [
        'name', 'email', 'phone'
     ]
});
var myStore =Ext.create('Ext.data.Store', {
    model: 'app.gridStore',
    proxy: {
        type: 'ajax',
        url : '',
        reader:{ 
            type:'json'
    }
    },
    autoLoad:false
});


--Grid in Border Layout Center--
items:[{
xtype:"grid",
id:"kontaktGrid",
store: myStore,
border: false,
columns: [
    {header: 'name',sortable : false,  dataIndex: 'name'},
    {header: 'email',sortable : false, dataIndex: 'email'},
    {header: 'phone',sortable : false, dataIndex: 'phone'}
]  
}]

Это не работает, только загрузка с сервера без отображения данных.


person Davor Zubak    schedule 25.05.2011    source источник
comment
Пожалуйста, предоставьте код, который генерирует ваш магазин, и как вы прикрепите его к сетке.   -  person Giku Promitt    schedule 25.05.2011
comment
@Warung Nasi 49 - На самом деле я загружаю сетку два раза, но после обновления снова ничего ...   -  person Davor Zubak    schedule 26.05.2011
comment
извините, я не понял,.. сетка загружается два раза, но после обновления ничего не происходит.. покажите мне ваш текущий js, отредактировав его снова.. дайте нам увидеть ваш код..   -  person Egy Mohammad Erdin    schedule 26.05.2011


Ответы (1)


во-первых, почему вы так загрузили свой json? даже это работает... это простой способ:

text: 'Load1',
handler:function(){
   myStore.load({
       scope : this,
       url : 'app/kontaktGrid1.json'
   });
   //myStore.getProxy().url = 'app/kontaktGrid1.json';
   //myStore.load();
   //grid.getView().refresh();
}

из документов, определение метода load: Загружает данные в Магазин через настроенный прокси-сервер..

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

убедитесь, что ваш столбец сетки ссылается (dataIndex) на ваш json

var grid = Ext.create('Ext.grid.Panel', {
    store: store,
    columns: [
        {text     : 'name',    sortable : false, dataIndex:"name"},
        {text     : 'email',   sortable : false, dataIndex:"email"},
        {text     : 'phone',   sortable : false, dataIndex:"phone"}
    ],
    //.....
person Egy Mohammad Erdin    schedule 26.05.2011
comment
Я сделал это в отдельной сетке, все работает, моя проблема в другом, так что большое спасибо! Задача решена! - person Davor Zubak; 26.05.2011
comment
вы можете взглянуть на этот пост: (stackoverflow.com/questions/6139215/), возможно, вы видите проблему! Помогите пожалуйста, застрял! - person Davor Zubak; 31.05.2011