Обычно у меня есть родительская сетка с расширителем строк, когда мы расширяем каждую строку, она также показывает дочернюю сетку с расширителем строк.
Parent Grid
Nested Grid
Проблема, с которой я сталкиваюсь, заключается в том, что расширитель строк во вложенной сетке не расширяется.
- Глядя на 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');
});
},