Отключить строки в ag-сетке, если для столбцов установлено значение редактируемое true

У меня есть требование разработать электронную таблицу, такую ​​как приложение, с использованием ag-grid. В этом случае мне нужно отключить несколько строк (не разрешать пользователям редактировать несколько строк). Может ли кто-нибудь посоветовать мне, как сделать определенные строки доступными только для чтения, когда все столбцы настроены для редактирования в истинный режим в ag-grid. Или есть другой способ заархивировать эту функциональность.


person Chinthaka Wimalaratna    schedule 12.10.2016    source источник


Ответы (2)


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

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

person Jarod Moser    schedule 13.10.2016
comment
Спасибо, Джарод, я использовал шаблон редактирования ячеек на сайте ag-grid, чтобы переопределить метод инициализации и вставить элемент ввода текста с отключенным стилем. Это сработало, и строки, которые я не хотел редактировать, стали отключенными. Но странно то, что каждый раз последняя ячейка в строке отключения все еще находится в режиме редактирования. Когда я отлаживаю, он проходит через метод инициализации, но по-прежнему его рендеринг с рендерингом по умолчанию из коробки. Вы хоть представляете, почему это происходит? Если нет, то это ошибка в аг-сетке. - person Chinthaka Wimalaratna; 17.10.2016
comment
Ниже приведен мой метод инициализации переопределения. this.childIndex = params.node.childIndex; если (params.node.childIndex == 0 || params.node.childIndex == 2) {params.api.stopEditing (); this.eInput = document.createElement ('ввод'); this.eInput.value = params.value; this.eInput.style.disabled = disabled} else {this.focusAfterAttached = params.cellStartedEdit; this.eInput = document.createElement ('ввод'); this.eInput.style.width = '100%'; this.eInput.style.height = '100%'; this.eInput.value = isCharNumeric (params.charPress)? params.charPress: params.value;} - person Chinthaka Wimalaratna; 17.10.2016
comment
Если у вас все еще есть editable: true в параметрах столбца, удалите его. В противном случае это может быть ошибка, из-за которой вы можете войти на их страницу github. Или, если бы вы могли воспроизвести свою схему в jsfiddle или plnkr, мы могли бы помочь в дальнейшем - person Jarod Moser; 17.10.2016
comment
Решение, которое я создаю, - это несколько строк, в которые пользователь должен вводить значения, а некоторые строки пользователи не могут их редактировать. Мне удалось отключить строки, переопределив метод NumericCellEditor.prototype.isCancelBeforeStart и вернув true для строк, которые мне нужно отключить. - person Chinthaka Wimalaratna; 18.10.2016

Вместо установки editable: true вы можете установить editable на основе данных:

editable: params => params.data.active === true.

Надеюсь, это поможет.

person Amie Wilt    schedule 22.03.2018