#angular #ag-grid
Вопрос:
Я использую ag grid community edition с angular для своей таблицы.
Мне нравится создавать редактируемую таблицу с проверкой.
Если проверка не удалась, мне нужно показать ошибку с красной рамкой в ячейке ag, как показано на рисунке ниже
Мое Подтверждение :
Когда Пользователь нажимает кнопку сохранить.
Пользователь должен ввести как фамилию, так и квалификацию.
Если пользователь вводит что-либо из этого, мне нужно показать красную рамку в ячейке
Если пользователь не ввел и то, и другое, то он может пройти
Пожалуйста, помогите мне достичь этого. Я попробовал использовать cellstyle, но он не подходит для моего случая
Ниже приведен мой URL-адрес Stackblitz
https://stackblitz.com/edit/angular-ivy-fq2wvt?file=src/app/app.component.ts
Комментарии:
1. Привет, Раджеш, я не знаком с ag-grid, но нашел одну статью, где автор объясняет, как использовать FormArray с ag-grid. Для меня это было трудно понять, но, возможно, это может вам помочь. blog.ag-grid.com/using-angular-forms-with-ag-grid
Ответ №1:
Один из возможных способов-использовать cellClassRules
один глобальный флаг для сигнализации о попытке сохранения.
Настройте этот простой объект в качестве члена класса:
cellRules = {
'rag-red': params => this.isSaveAttempted amp;amp; !params.value
};
инициализируйте «попытку сохранения»:
isSaveAttempted = false;
затем назначьте столбцу defs (фамилия, квалификация):
{
headerName: 'Last Name',
field: 'lastName',
editable: true,
cellClassRules: this.cellRules // <-- here
},
{ headerName: 'Address', field: 'address', editable: true },
{
headerName: 'Qualification',
field: 'qualification',
editable: true,
cellClassRules: this.cellRules // <-- here
}
правило css в компоненте (чтобы оно работало ng-deep
, нужно), но вы также можете добавить styles.css
, а затем нет ng-deep
.
:host::ng-deep .rag-red {
border: 3px solid red !important;
}
после того, как пользователь нажмет кнопку «Сохранить»:
onSave(): void {
this.isSaveAttempted = true;
this.gridApi.redrawRows(); <-- this will trigger redraw and red borders
Комментарии:
1. спасибо за твою помощь, Роберт. Но ваше решение-это проверка всей сетки. Даже не отредактированные строки также отображаются красным цветом. Я хочу показать только ту ошибку, которую редактирует пользователь
2. @RajeshKumar Проверьте эту новую демонстрацию