Отключить выбор флажка в Ag-сетке

Можно ли отключить выбор флажка, сохранив некоторые выбранные строки, отображаемые с некоторыми ограничениями? Я не хочу позволять пользователям отменять выбор строк, выбранных во время рендеринга.

Я нашел this.gridOptions.suppressCellSelection = true;, но это просто скрывает флажок, тогда как мне нужно показать флажок в режиме отключения.

Спасибо.

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

Armin Šupuk 09.04.2018 13:18

эти флажки отображаются, но реализация ag-grid. поэтому подумал, что если есть api, то это легко.

Amit Naik 09.04.2018 15:58

Для дальнейшего использования, вот полная информация о отключение флажка в ag-сетке.

Shujath 22.09.2020 17:16
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
3
10 919
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Один из способов - добавить функцию cellRenderer в столбец, для которого необходимо реализовать флажок. Вы можете включить или отключить этот флажок, вернув true или false из функции cellRenderer.

Я использую внутренний api ag-grid для рендеринга флажка, а не cellRenderer

Amit Naik 25.04.2018 06:01
Ответ принят как подходящий

Я решил это, добавив rowClassRules в GridOptions

            rowClassRules: {
                'ag-row-selected' : function(params) {
                    return params.node.selected === true;
                },
            },

Это добавит css, как показано ниже, чтобы отключить щелчок по флажку

.ag-row-selected{
        .ag-cell .ag-cell-wrapper .ag-selection-checkbox .ag-icon-checkbox-checked {
            pointer-events: none;
        }
    }

Правила RowClass применяются при обновлении / обновлении сетки или обновлении узлов. Я сделал это, обновив определенные узлы

           node.setSelected(true);
           // this is to trigger rowClass for selected/non-selected rows
           // to disable checkbox selection
           node.setData(node.data);

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

cellRenderer: "agGroupCellRenderer",
cellRendererParams: {
    checkbox: function(params) {
        const node = params.node;
        const isGroupRow = node.level === 0; //only show the checkbox on group row.

        if (isGroupRow) {
            params.node.selectable = //your condition whether the rendered checkbox is selectable or not
        }

        return isGroupRow;
    }
}

Это сработало для меня

 cellStyle: params => {
          return params.data.myStatus ? {'pointer-events': 'none', opacity: '0.4' }
            : '';
        }

Обходной путь на чистом CSS:

.ag-selection-checkbox.ag-hidden {
  display: inherit !important;
  opacity: 0.6;
  cursor: not-allowed;
}

Это перезапишет конфигурацию display: none в ag-hidden для оболочки флажка.

Другие вопросы по теме