1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
export class DataGridComponent implements OnInit {
dataSource: DataSource;
customers: Customer[];
customerForm: FormGroup;
@ViewChild(DxDataGridComponent, { static: false }) dataGrid: DxDataGridComponent;
constructor(
private apiCustomer: ApiCustomerService,
private formBuilder: FormBuilder) { }
ngOnInit(): void {
this.apiCustomer.getCustomersService().subscribe((customers: Customer[]) => {
this.customers = customers;
this.initializeDatatable(customers);
});
this.initCustomerForm();
}
initializeDatatable(customers: Customer[]): void {
this.dataSource = new DataSource(
{ store: customers }
)
}
initCustomerForm(): void {
this.customerForm = this.formBuilder.group({
firstName: ['', Validators.required],
lastName: ['', Validators.required],
email: ['', [Validators.required, Validators.email]],
city: ['', Validators.required],
postCode: ['', Validators.pattern("^[0-9]*$")]
})
}
addCustomer() {
let customer = {
firstName:this.customerForm.value['firstName'],
lastName: this.customerForm.value['lastName'],
email: this.customerForm.value['email'],
city: this.customerForm.value['city'],
postCode: this.customerForm.value['postCode']
}
this.addToDatatable(customer);
this.customerForm.reset();
}
addToDatatable(customer: Customer): void {
this.apiCustomer.addCustomerService(customer).subscribe(() => {
this.dataSource.store().insert(customer).then(() => this.dataSource.reload());
});
}
convertIntoPDF(): void {
const doc = new jsPDF();
exportDataGridToPdf({
jsPDFDocument: doc,
component: this.dataGrid.instance
}).then(() => {
doc.save('customers_list.pdf');
})
}
} |
Partager