2

我有 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

但是,两个网格都填充了相同的数据集。我想要的是在 Grid 1 ( sportID, sportName, noOfPlayers) 上显示所有运动信息,并显示运动信息 ( noOfMedals, noOfGolds) WHERE sportId='3'。我怎样才能做到这一点 ?

4

2 回答 2

4

简短的回答 - 你不能。如果您需要在同一存储中同时呈现两个不同的网格,则需要克隆存储并拥有另一个副本。

如果不是同时 - 您可以在显示网格之前使用过滤和过滤一个商店。

于 2012-07-30T10:29:33.553 回答
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');
        }]
    },
于 2020-10-09T09:55:53.863 回答