选择子网格中的行选择具有相同行索引的父网格中的行

时间:2014-04-04 15:27:41

标签: extjs

我在Rowexpander Plugin中实现了嵌套网格。现在问题是,当我选择任何第n行子网格时,父网格第n行也会被选中。我认为因为当我鼠标悬停在子网格行上时,它们具有相同的rowIndex.Even,同时也为父级显示相同的鼠标悬停效果。

以下是Rowexpander的代码

var expander = new Ext.ux.grid.RowExpander({
             expandOnDblClick : false,
             tpl : new Ext.Template('<div id="NestedGridRow-{id}"></div>'),

             renderer: function(v, p, record) {
                    if (record.get('cmaStatus') == 'G') {
                        p.cellAttr = 'rowspan="2"';
                        return '<div class="x-grid3-row-expander"></div>';
                    } 
        },


        });



        expander.on('expand', expandedRow);

        function expandedRow(obj, record, body, rowIndex){
            //absId parameter for the http request to get the absence details.


            //Use Id to give each grid a unique identifier. The Id is used in the row expander tpl.
            //and in the grid.render("ID") method.

            var row = "NestedGridRow-" + record.get("id");
            var id2 = "mygrid-" +record.get("id"); 

            sapid_para = record.get('sapid');
           //Create the nested grid.         
           var gridX = new Ext.grid.GridPanel({
               id:'nestedGrid',
                store: storenested,
                //stripeRows: true,
                columns: [


                    {
                        header : "CMA Date",
                        width : 120,
                        sortable : true,
                        dataIndex : 'cmaDate',

                    },
                    {
                        header : "Source Model",
                        width : 120,
                        sortable : true,
                        dataIndex : 'sourceModel',

                    },

                    {
                        header : "Remarks",
                        width : 390,
                        sortable : true,
                        dataIndex : 'remarks',

                    }],
            height: 120,
            id: id2,
            plugins : [editor],
            renderTo: row,
            stripeRows:true,
            listeners: {
                render: function(gridX) {
                    gridX.getView().el.select('.x-grid3-header').setStyle('display', 'none');
                },

                rowclick : function(grid,rowIndex,e) {
                    alert(rowIndex);                                       
                    }


                },

                            });  
            gridX.render(row);


            //Ext.getCmp('grid_lineage').getStore().load({params:{start:0, limit:10}});
            storenested.load({params:{start:0, limit:10}});

请帮助

1 个答案:

答案 0 :(得分:0)

我有同样的问题。您需要获得嵌套网格的句柄,并调用它:

gridX.getEl().swallowEvent(['mouseover', 'mousedown', 'click', 'dblclick', 'onRowFocus']);