0

我有这个代码:

Ext.define('MyDesktop.Opport', {
extend: 'Ext.ux.desktop.Module',
requires: [
    'Ext.data.ArrayStore',
    'Ext.util.Format',
    'Ext.grid.Panel',
    'Ext.grid.RowNumberer',
/***********************/
    'Ext.grid.*',
    'Ext.data.*',
    'Ext.panel.*'
/***********************/
],


id:'opp',
createWindow : function(){
    var storeop = Ext.create('Ext.data.JsonStore', {
        proxy: {
            type: 'ajax',
            url: 'PHP/afficherop.php',
            reader: {
                type: 'json',               // format fichier : JSON
                root: 'enregistrements',    // D?but des donn?es
                idProperty: 'id'            // cl? primaire
            }
        },
        fields: ['id','date','infos','idProd','idcl']
    });

    var storecl = Ext.create('Ext.data.JsonStore', {
        proxy: {
            type: 'ajax',

            url: 'PHP/afficher.php',
            reader: {
                type: 'json',               // format fichier : JSON
                root: 'enregistrements',    // D?but des donn?es
                idProperty: 'id'            // cl? primaire
            }
        },
        fields: ['id','type','nom','prenom','mat']
    });

    storecl.load();
    var desktop = this.app.getDesktop();
    var win = desktop.getWindow('opp');
    /*******************/
    if(!win){
        win = desktop.createWindow({
            id: 'opp',
            title:'Opportunités',
            width:500,
            height:480,
            iconCls: 'bogus',
            animCollapse:false,
            constrainHeader:true,
            layout: 'border',
            align: 'center',

            items: [
                {
                    xtype: 'grid',
                    flex: 1,
                    split: true,
                    border: true,
                    region: 'center',
                    store: storecl,

                    title: 'Client',
                    columns: [
                       // new Ext.grid.RowNumberer(),
                        {text: 'ID',dataIndex: 'id'},
                        { text: 'type',align: 'center',dataIndex: 'type'},
                        { text: 'nom',align: 'center',dataIndex: 'nom'},
                        { text: 'Prénom',align: 'center',dataIndex: 'prenom'},
                        { text: 'Matricule',align: 'center',dataIndex: 'mat'}
                    ],
                    listeners: {itemdblclick: function(grid ,record){
                    var rr = grid.getSelectionModel();
                    var rs = rr.getSelection();
                        var idc = rs[0].get('id');
                        Ext.Ajax.request({
                            url: 'PHP/op.php',
                            params: {
                                idcl: idc
                            }
                             });
                        storeop.load({params:{idcl: idc}});
                }}
                },{
                    xtype: 'grid',
                    flex: 1,
                    region: 'south',
                    border: true,
                    store: storeop,
                    title: 'Liste des opportunités',
                    columns: [
                        // new Ext.grid.RowNumberer(),
                        {text: 'ID',dataIndex: 'id'},
                        { text: 'Date',align: 'center',dataIndex: 'date'},
                        { text: 'Info',align: 'center',dataIndex: 'infos'},
                        { text: 'Produit',align: 'center',dataIndex: 'idProd'},
                        { text: 'CLient',align: 'center',dataIndex: 'idcl'}
                    ]
                }
            ]
        })
    }
    return win;
}
});

我希望第二个网格使用从第一个网格中选择的参数来显示从商店 storeop 加载的记录。有什么帮助吗?

4

2 回答 2

0

您可以从第一个网格中获取选定的行:

var selectedRecord = firstGrid.getSelectionModel().getSelection()[0];

在这里,我假设您有一个单一的选择模型。要将其加载selectedRecord到您的第二个grid,您必须loadData将其加载到store.

list.push(selectedRecord.data);
secondGrid.store.loadData(list, false);

请注意,您必须store为每个grid.

于 2013-07-10T01:23:33.310 回答
0

您的第二个网格需要第二个 Store 实例。不要对两个网格使用同一个商店。

于 2013-07-06T16:27:37.167 回答