可以通过自定义单元格渲染器和编辑器来实现下拉列表的集合选择,并将其与行分组一起使用。
// 自定义渲染器
function dropdownRenderer(params) {
return
;
}
// 自定义编辑器 function dropdownEditor(params) { const container = document.createElement('div'); container.className = 'dropdown-container';
const valueElem = document.createElement('span'); valueElem.className = 'cell-value'; valueElem.innerText = params.value; container.appendChild(valueElem);
const dropdownElem = document.createElement('select'); dropdownElem.className = 'dropdown-select'; dropdownElem.multiple = true;
const optionValues = ['Option A', 'Option B', 'Option C']; optionValues.forEach((optionValue) => { const optionElem = document.createElement('option'); optionElem.value = optionValue; optionElem.innerText = optionValue; dropdownElem.appendChild(optionElem); });
dropdownElem.value = params.value; container.appendChild(dropdownElem);
dropdownElem.addEventListener('change', () => { const newValue = Array.from(dropdownElem.selectedOptions).map((option) => option.value); params.data[params.colDef.field] = newValue.join(', '); params.api.stopEditing(); });
return container; }
// 声明列定义 const columnDefs = [ { headerName: 'Country', field: 'country', rowGroup: true, hide: true, }, { headerName: 'City', field: 'city', rowGroup: true, hide: true, }, { headerName: 'GroupSelection', field: 'GroupSelection', cellRenderer: 'dropdownRenderer', // 应用下拉列表渲染器 cellEditor: 'dropdownEditor', // 应用下拉列表编辑器 editable: true, width: 200, }, ];
// 声明数据 const rowData = [ { country: 'United States', city: 'New York', GroupSelection: '' }, { country: 'United States', city: 'Los Angeles', GroupSelection: '' }, { country: 'United States', city: 'Chicago',