SCENARIO
我有一个网格面板(比如网格),它在我的应用程序中随处可用。假设组件( panel1 和 panel2 )正在使用网格。这个网格正在使用商店( store1 )。我想更新panel1中的网格而不更新panel2中的网格
我的问题
我不想在panel1和panel2中为网格使用不同的商店。 他们可以通过任何方式实现这一目标。
我尝试将存储(使用新数据)绑定到panel1中的网格。但是panel1和panel2中的网格都会更新。
如果我不够清楚,请告诉我。请帮我解决这个问题。很多。
**For reference**
/*my grid*/
Ext.define('APP.view.mygrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.mygrid',
store:'store1',
columns: [ ... ]
/*my panels*/
{
xtype:'panel',
items:[
{
xtype :'mygrid',
}
],
xtype:'panel',
items:[
{
xtype :'mygrid',
}
],
}
答案 0 :(得分:0)
您可以为第二个面板创建商店,请尝试以下操作:
var secondStore=Ext.create('your_store');
items: [
{
xtype: 'gridpanel',
title: 'grid1',
store: 'your_store'
},{
xtype: 'gridpanel',
title: 'grid2',
store: secondStore
}
]
答案 1 :(得分:0)
我假设您通过商店中的某些本地更改来更新网格,并且您不会调用您的Web服务。然后你可以尝试这样做:
store.suspendEvents(false); // false: do not queue events
// do some data changes now
store.resumeEvents();
grid.getView().refresh(); // only on the first grid
答案 2 :(得分:0)
我已经通过每次创建商店实例来解决这个问题 调用网格。请看一下:
initComponent : function() {
this.items = [
{
xtype : 'myPanelgrids'
name : 'panel1' // this is the extra config to identify the grid in added in my panel1
}
];
this.callParent();
},
listeners: {
render: function(){
var store = Ext.create('Ext.data.Store',
{
model: 'App.model.MyModel',
autoLoad: true,
proxy: {
type: 'ajax',
url:'app/data/configdata.json',
reader: {
type: 'json',
root : 'myroot'//maintained a json property file with different roots for grids in panel1 and panel2
}
}
}
);
this.down('grid').reconfigure(store);
}
}
我正在从我的控制器更新特定网格的商店。