我有2个网格,这两个网格都会从同一个商店Person
自我填充。
我遇到的问题是,在第一个网格中,我将加载所有体育和它拥有的玩家数量。在第二个网格中,我将仅显示一项运动赢得的奖牌和金牌数量,SportID = 3
。我怎样才能做到这一点 ?当我加载网格时,它将填充所有
{
xtype: 'gridpanel',
title: 'ALl Sports',
store: 'Person',
columns: [
{
xtype: 'gridcolumn',
dataIndex: 'SportID',
text: 'Sport ID'
},
{
xtype: 'gridcolumn',
dataIndex: 'SportName',
text: 'Sport Name'
},
{
xtype: 'gridcolumn',
dataIndex: 'NoOfPlayers',
text: 'No Of Players'
}
]
},
{
xtype: 'gridpanel',
title: 'Sport Medals for Sport ID 3',
store: 'Person',
columns: [
{
xtype: 'gridcolumn',
dataIndex: 'noOfMedals',
text: 'No Of Medals'
},
{
xtype: 'gridcolumn',
dataIndex: 'NoOfGold',
text: 'No Of Gold'
}
],
我有2个网格,这两个网格都会从同一个商店Person
自我填充。这两个网格在窗口中。当窗口加载时,我按如下方式填充网格;
更新1 ############################# 3
var personStore = Ext.getStore('Person');
var r = personStore.getAt(0);
personStore.on('load', function() {
r = personStore.getAt(0);
st.filter({
filterFn: function(rec) {
return rec.get('PersonId') == r.get('PersonId');
}
});
personStore.load();
####################### 3
但是,两个网格都填充了相同的数据集。我想要的是显示网格1上的所有体育信息(sportID
,sportName
,noOfPlayers
)和显示体育信息(noOfMedals
,noOfGolds
)WHERE sportId='3'
。我怎么能这样做?
答案 0 :(得分:4)
简短回答 - 你不能。如果您需要在同一商店同时呈现两个不同的网格,则需要克隆商店并获得另一个副本。
如果不是同时 - 您可以在显示网格之前使用过滤和过滤一个商店。
答案 1 :(得分:0)
根据第一家商店创建额外的商店,仅将过滤器应用于第二家商店。
DSScheduleDay: {
source: '{DSSchedule}',
filters: [function (rec) {
return (rec.get('type_id') !== 'V');
}]
},
DSScheduleWeek: {
source: '{DSSchedule}',
filters: [function (rec) {
return (rec.get('type_id') === 'V');
}]
},