Extjs 4 показывает данные JSON (по запросу) в сетку? - PullRequest
1 голос
/ 25 мая 2011

После достижения 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'}
]  
}]

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

1 Ответ

3 голосов
/ 26 мая 2011

во-первых, почему ты так загружал свой 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, store и моделью ...
я думаю, что ваша проблема в панели сетки ..
попробуйте показать нам, как вы создали сетку

убедитесь, что ваш столбец сетки относится (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"}
    ],
    //.....
...