У меня есть требование разработать электронную таблицу, такую как приложение, с использованием ag-grid. В этом случае мне нужно отключить несколько строк (не разрешать пользователям редактировать несколько строк). Может ли кто-нибудь посоветовать мне, как сделать определенные строки доступными только для чтения, когда все столбцы настроены для редактирования в истинный режим в ag-grid. Или есть другой способ заархивировать эту функциональность.
Отключить строки в ag-сетке, если для столбцов установлено значение редактируемое true
Ответы (2)
Лучше всего использовать cellEditor
как-нибудь. Он предоставляет узлы строк в своих параметрах инициализации, которые вы можете перебирать и проверять, является ли это строкой, которую вы хотите редактировать, или нет. Если это не так, вызовите stopEditing.
Извините, у меня еще нет рабочего примера, но я попытаюсь решить его именно так и постараюсь предоставить рабочий пример, когда он у меня появится.
person
Jarod Moser
schedule
13.10.2016
Спасибо, Джарод, я использовал шаблон редактирования ячеек на сайте ag-grid, чтобы переопределить метод инициализации и вставить элемент ввода текста с отключенным стилем. Это сработало, и строки, которые я не хотел редактировать, стали отключенными. Но странно то, что каждый раз последняя ячейка в строке отключения все еще находится в режиме редактирования. Когда я отлаживаю, он проходит через метод инициализации, но по-прежнему его рендеринг с рендерингом по умолчанию из коробки. Вы хоть представляете, почему это происходит? Если нет, то это ошибка в аг-сетке.
- person Chinthaka Wimalaratna; 17.10.2016
Ниже приведен мой метод инициализации переопределения. 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
Если у вас все еще есть
editable: true
в параметрах столбца, удалите его. В противном случае это может быть ошибка, из-за которой вы можете войти на их страницу github. Или, если бы вы могли воспроизвести свою схему в jsfiddle или plnkr, мы могли бы помочь в дальнейшем
- person Jarod Moser; 17.10.2016
Решение, которое я создаю, - это несколько строк, в которые пользователь должен вводить значения, а некоторые строки пользователи не могут их редактировать. Мне удалось отключить строки, переопределив метод 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