Для обработки visual
детали необходимо создать пользовательскую cellRenderer
Для обработки edit
материала вы должны создать пользовательскую cellEditor
Итак, для пользовательского components
вам нужно создать .html
файл для визуальных вещей и .ts
для логической обработки.
простой .html
дляпереключатели:
<div class="radio-container">
<input type="radio" [value]="1" [(ngModel)]="radioValue" (change)="stopEdit()">
<input type="radio" [value]="2" [(ngModel)]="radioValue" (change)="stopEdit()">
<input type="radio" [value]="3" [(ngModel)]="radioValue" (change)="stopEdit()">
</div>
и .ts
вы должны обрабатывать ICellEditorComp
functions
:
agInit
- для инициализации и привязки существующего значения к вашей модели isPopup
- будет ли это окно popup
или внутри ячейки getValue
- этот function
вернет значение после stopEditing
api-функция выполнения
простая .ts
private params: any;
public radioValue: number;
agInit(params: any): void {
this.params = params;
this.radioValue = params.value;
}
getValue(): any {
return this.radioValue;
}
isPopup(): boolean {
return true;
}
stopEdit() {
alert(`Value changed to: ${this.radioValue}`);
this.params.api.stopEditing();
}
Не забывайте, что пользовательский components
должен быть включен в frameworkComponents
внутри gridOptions
или как [frameworkComponents]
html ag-grid
property.
Worked plnkr sample
Обновление: row-selection
via radio-button
inside cellRenderer
NOT SELECTED
<input type="radio" [(checked)]="!params.node.selected" (change)="handleChange()">
SELECTED
<input type="radio" [(checked)]="params.node.selected" (change)="handleChange()">
{{params.value}}
handleChange() {
this.params.node.setSelected(!this.params.node.selected)
}
Кроме того, имейте в виду, что в этом случае мы неПри использовании editor
логика может обрабатываться только через renderer
Обработано Пример PLNKR