У меня есть AG-Grid, содержащая несколько ячеек, которые необходимо включить / отключить и очистить на основе значения, выбранного в определенном столбце.
| col_a | col_b | col_c | ... | col_t | ... |
|----------|----------|----------|-----|--------|-----|
| editable | editable | editable | ... | Type W | ... |
| editable | X | X | ... | Type X | ... |
| editable | X | editable | ... | Type Y | ... |
| X | X | editable | ... | Type Z | ... |
Если пользователь меняет тип col_t
Например, от Type W
до Type X
, значения в col_b
и col_c
должны быть очищены (или установлены в «N / A» или что-то в этом роде), а ячейка отключена для редактирования. Если они затем изменяют его с Type X
на Type Y
, то col_c
необходимо повторно включить для редактирования (и значение, оставленное в "N / A").
Я смотрел на предложение для создания нового средства визуализации ячеек , которое, кажется, только обрабатывает включение / отключение, основано на столбце, а не на строке, и, похоже, не касается сброса значения.
У меня есть "правила", сжатые в массив объектов с ключами:
{
"Type W":["col_a","col_b","col_c",],
"Type X":["col_a",],
"Type Y":["col_a","col_c",],
"Type Z":["col_c",],
}
... и я подозреваю, что могу изменить значения других ячеек в строке, установив onCellValueChanged
обработчик для col_t
примерно так:
onCellValueChanged: (params) => {
params.newValue
const rules = {
"Type W":["col_a","col_b","col_c",],
"Type X":["col_a",],
"Type Y":["col_a","col_c",],
"Type Z":["col_c",],
}
if ( params.oldValue !== params.newValue) {
theRule.forEach( (columnName) => {
if( theRule.indexOf(columnName) === -1 ) {
// reset value
params.data[columnName] = 'n/a'
// disable cell
// ???
} else {
//enable row
// ???
}
})
}
}
Однако из комментариев вы можете видеть, что я не уверен, как отключить / включить ячейки только в строке, в которой я нахожусь. через API и getRowNode(id)
, но я не вижу этого.
Есть что-то, что я пропускаю?