【问题标题】:Selecting row in child grid selects the row in parent grid with same row index在子网格中选择行选择在父网格中具有相同行索引的行
【发布时间】:2014-08-14 03:59:57
【问题描述】:

我已经在 Rowexpander 插件中实现了嵌套网格。现在问题是,当我选择子网格的任何第 n 行时,父网格第 n 行也会被选中。我认为是因为两者具有相同的 rowIndex。即使当我将鼠标悬停在子网格行上时,父级也会同时显示相同的鼠标悬停效果。

下面是 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}});

请帮忙

【问题讨论】:

标签: extjs


【解决方案1】:

我有同样的问题。您需要获取嵌套网格的句柄,然后调用:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多