¿Alguien puede ayudar con esta pregunta? ¿Es posible agregar una nueva fila después de la última fila al hacer clic en el botón Agregar nuevo en la tabla inteligente ng2? Si es así, ¿podría ayudarme con la solución/atributo? Encuentre el código a continuación.
static settings= { add: { addButtonContent: '<i class="nb-plus"></i>', createButtonContent: '<i class="nb-checkmark"></i>', cancelButtonContent: '<i class="nb-close"></i>', confirmCreate: true }, edit: { editButtonContent: '<i class="nb-edit"></i>', saveButtonContent: '<i class="nb-checkmark"></i>', cancelButtonContent: '<i class="nb-close"></i>', }, delete: { deleteButtonContent: '<i class="nb-trash"></i>', confirmDelete: false, }, columns: { options: { title: 'Options', type: 'html', width:"30%", editor:{ type:'list', config:{ selectText: 'Select', list:[{value:'Option1',title:'Option1'}, {value:'Option2',title:'Option2'}, {value:'Option3',title:'Option3'}, {value:'Option4',title:'Option4'}] } } }, values: { title: 'Values', width:"70%", type: 'html', }, }, };[Imagen del botón Agregar nueva fila de la tabla] 1
HTML:
<ng2-smart-table [settings]="settings" [source]="settingsSource" (createConfirm)="validateRecord($event,'cmd')"> </ng2-smart-table> validateRecord(event,module){ if(module == 'cmd'){ if (event.newData.command !== ""){ event.confirm.resolve(event.newData); this.emptyRecordError = false; } } }Mi requisito es que cada vez que hago clic en el botón Agregar, la fila debe agregarse como la última fila.
Asegúrese de que add.confirmCreate esté establecido en true , que es para usted.
Agregue el detector de eventos (createConfirm)
<ng2-smart-table [settings]="settings" [source]="data" (createConfirm)="create($event)" ></ng2-smart-table>Agregue los datos en la devolución de llamada, rechace los datos que se agregan.
create(event: { newData: Object; source: DataSource; confirm: Deferred }) { event.source.append(event.newData); event.confirm.reject(); }Necesitarás estas importaciones
import { DataSource } from 'ng2-smart-table/lib/lib/data-source/data-source'; import { Deferred } from 'ng2-smart-table/lib/lib/helpers';Buscando en el código fuente aquí: https://github.com/akveo/ng2-smart-table/blob/master/projects/ng2-smart-table/src/lib/lib/grid.ts pude encontrar un forma de cerrar el cuadro de creación después también
create(event: { newData: Object; source: DataSource; confirm: Deferred }) { event.source.append(event.newData); event.confirm.resolve.skipAdd = true; event.confirm.resolve(); }