Как убедиться, что вложенный заголовок выбран, когда родительский заголовок выбран - Extjs - PullRequest
0 голосов
/ 27 декабря 2018

Попытка выбрать все вложенные заголовки, когда я выбираю родительский заголовок.

  1. По умолчанию родительский 1 и родительский 2 выбраны как поля столбцов, так и вложенные (отлично для меня)

  2. Когда я отменяю выбор родителя 1, его вложенные поля также не выбираются (Отлично для меня)

  3. Когда я выбираю parent1, я не могу выбратьВложенные поля автоматически (нужна помощь здесь)

ссылка: Вложенный заголовок Код скрипты

1 Ответ

0 голосов
/ 28 декабря 2018

У меня была похожая проблема с сеткой ExtJS 4.2.Это происходит, когда столбец имеет items config (у вас есть один textfield в Parent 1 столбце).Моим решением было реализовать show слушатель для столбцов с элементами и показать все дочерние столбцы.Это был обходной путь, но он работал для меня:

Ext.create('Ext.grid.Panel', {
    title: 'Simpsons',
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columnLines: true,
    enableLocking: true,
    columns: [{
        text: 'Parent 1',
        listeners: {
            show: function(c) {
                for (i = 0; i < c.items.length; i++) {
                    c.items.items[i].show();
                }                               
            }   
        },
        columns: [{
            text: 'Name',
            width: 100,
            sortable: true,
            lockable: true,
            dataIndex: 'name',
            items: {
                xtype: 'textfield'
            }
        }, {
            text: 'Email',
            width: 100,
            lockable: true,
            sortable: true,
            dataIndex: 'email'
        }]
    }, {
        text: 'Parent 2',
        columns: [{
            text: 'Name',
            width: 100,
            sortable: true,
            lockable: true,
            dataIndex: 'name'
        }, {
            text: 'Email',
            width: 100,
            lockable: true,
            sortable: true,
            dataIndex: 'email'
        }]
    }],
    height: 350,
    width: 600,
    renderTo: Ext.getBody()
});
...