Я знаю, что можно динамически устанавливать элементы меню для каждой строки lightning-datatable, но у меня есть требование полностью скрыть элементы меню действий для определенных строк, которые удовлетворяют некоторому условию.

Возможно ли добиться этого с помощью lightning-datatable?

0
Oleksandr Berehovskyi 19 Сен 2021 в 00:01

1 ответ

Для реализации этого необходимо внести несколько изменений.

Первый: class следует добавить к cellAttributes, чтобы получить значение из столбца cssClass в данных.

    cols.push({
        'type':'action', 
        'typeAttributes':{
            'rowActions':this.getRowActions.bind(this)
        },
        'cellAttributes':{
            'class':{
                'fieldName':'cssClass'
            }
        }
    });

Второй кусок. Данные должны быть обновлены, чтобы включить стандартные классы «slds-hide», чтобы скрыть меню, или «slds-show», чтобы показать меню.

dataRow.cssClass = this.isOrphaned(dataRow) ? 'slds-hide' : 'slds-show';

Наконец, третья часть.

Таблица может выглядеть странно из-за отсутствия строк между строками, в которых скрыты действия, чтобы смягчить это, после отсутствующего добавляется поддельный дополнительный столбец для отображения строк под строками, в которых отсутствуют пункты меню.

    cols.push({
        fixedWidth: 1, hideDefaultActions: true
    });
0
Patlatus 18 Сен 2021 в 21:50