ExtJs 3.4 - расширитель строк не работает во вложенной сетке - PullRequest
0 голосов
/ 10 января 2019

Обычно у меня есть родительская сетка с расширителем строк, когда мы расширяем каждую строку, она также показывает дочернюю сетку с расширителем строк.

Parent Grid

Parent Grid

Nested Grid

Nested Grid

Проблема, с которой я сталкиваюсь, заключается в том, что расширитель строк во вложенной сетке не расширяется.

  1. Глядя на 2-е вложение, вы можете увидеть, что расширитель во вложенной сетке был расширен по умолчанию при развертывании родительской строки.
  2. После нажатия на развернутый значок (- значок) он выглядит свернутым. Второй раз, когда я щелкнул по нему, когда пытался его развернуть, я вызвал эту ошибку.

Uncaught TypeError: Невозможно установить свойство 'innerHTML' из неопределенного


То, что я пробовал в этом справочник

nestedGrid.getEl().swallowEvent([
    'mousedown', 'mouseup', 'click',
    'contextmenu', 'mouseover', 'mouseout',
    'dblclick', 'mousemove'

Но нажатие на расширитель больше не является реакцией на развал / развал.

Цените, если кто-то может указать на ошибку / проблему. Спасибо.


Мой расширитель строк в родительской сетке привязан к rowExpanderOnExpandListener

rowExpanderOnExpandListener: function (rowIndex) {
    var selectedRuleId = this.getStore().getAt(rowIndex).data.Id;        
    this.buildNestedGrid(selectedRuleId);        
},

buildNestedGrid: function (ruleId) {
    var nestedExpander = new Ext.ux.grid.RowExpander({
        id: 'nestedExpander',
        tpl: '<div>TEST TEST</div>'
    });

    //build grid
    var nestedGrid = new Ext.grid.GridPanel({
        id: 'childRuleGrid',
        store: this.buildStoreForChildRules(ruleId),
        height: 150,
        columns: [
            nestedExpander,
            {
                id: 'id',
                header: 'Id',
                dataIndex: 'Id'
            },
            {
                id: 'parentId',
                header: 'Parent Id',
                dataIndex: 'ParentId'
            },
            {
                id: 'condition',
                header: 'Condition',
                dataIndex: 'Condition'
            },
            {
                id: 'conclusion',
                header: 'Conclusion',
                dataIndex: 'Conclusion'
            },
            {
                id: 'createdBy',
                header: 'Created By',
                dataIndex: 'CreatedBy'
            },
            {
                id: 'createdOn',
                header: 'Created On',
                dataIndex: 'CreatedOn'
            }
        ],
        viewConfig: {
            forceFit: true
        }
    });

    nestedGrid.render('childRulesGrid');
    nestedGrid.getEl().swallowEvent([
        'mousedown', 'mouseup', 'click',
        'contextmenu', 'mouseover', 'mouseout',
        'dblclick', 'mousemove'
    ]);
    nestedExpander.on('click', function() {
        alert('clicked');
    });
},
...