在达到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'}
]
}]
这不起作用,只从服务器加载没有相反的数据。
答案 0 :(得分:3)
首先,你为什么要加载你的json?即使它正在工作......这是一个简单的方法:
text: 'Load1',
handler:function(){
myStore.load({
scope : this,
url : 'app/kontaktGrid1.json'
});
//myStore.getProxy().url = 'app/kontaktGrid1.json';
//myStore.load();
//grid.getView().refresh();
}
来自docs的,方法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"}
],
//.....