import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
import { ToastrManager } from 'ng6-toastr-notifications';
import { environment } from 'src/environments/environment';
import { HttpClient, HttpParams } from '@angular/common/http';
import { LoginService } from '../login.service';
declare var $;
class SiteModal {
OrderNumber: string;
ContactName: string;
EntityName: string;
ContactNo: string;
CategoryName: string;
StatusName: string;
}
class DataTablesResponse {
data: any[];
draw: number;
recordsFiltered: number;
recordsTotal: number;
}
@Component({
selector: 'app-site',
templateUrl: './site.component.html',
styleUrls: ['./site.component.scss']
})
export class SiteComponent implements OnInit {
@ViewChild('dataTable') table: ElementRef;
dataTable: any;
dtOptions: DataTables.Settings = {};
siteModal: SiteModal[];
dataTablesResponse: DataTablesResponse[];
datatable: any;
public data: Object;
public temp_var: Object = false;
constructor(
private http: HttpClient,
public toastr: ToastrManager,
private LoginService: LoginService
) { }
ngOnInit(): void {
const that = this;
this.dtOptions = {
pagingType: 'full_numbers',
pageLength: 10,
serverSide: true,
processing: true,
ordering: false,
searching: false,
ajax: (dataTablesParameters: any, callback) => {
let params = new HttpParams();
let startNumber: any;
startNumber = dataTablesParameters.start;
if (startNumber != 0) {
startNumber = startNumber + 1
} else {
startNumber = startNumber;
}
params = params.append("start", startNumber);
params = params.append("length", dataTablesParameters.length);
let param = params.toString();
setTimeout(() => {
$(".dataTables_empty").hide();
}, 500);
that.http
.post<DataTablesResponse>(
environment.apiUrl + "api/Entity/GetSiteList",
params, {}
).subscribe(resp => {
that.siteModal = resp.data;
debugger
setTimeout(() => {
$(".dataTables_empty").hide();
}, 500);
callback({
recordsTotal: resp.recordsTotal,
recordsFiltered: resp.recordsFiltered,
data: []
});
});
},
columns: [{ data: 'OrderNumber' }, { data: 'ContactName' }, { data: 'EntityName' }, { data: 'ContactNo' }, { data: 'StatusName' }, { data: 'CategoryName' }]
};
}
}
<section class="content-header ng-scope">
<h1>Site </h1>
</section>
<section class="content">
<div class="panel panel-default">
<div class="panel-body">
<div class="row">
<div class="col-md-12 table-responsive">
<table id='Clienttbl' datatable [dtOptions]="dtOptions" class="row-border hover">
<thead>
<tr>
<th>Order #</th>
<th>ContactName</th>
<th>Entity Name</th>
<th>ContactNo</th>
<th>StatusName</th>
<th>Category Name</th>
</tr>
</thead>
<tbody *ngIf="siteModal?.length != 0">
<tr *ngFor="let data of siteModal">
<td>{{ data.OrderNumber }}</td>
<td>{{ data.ContactName }}</td>
<td>{{ data.EntityName }}</td>
<td>{{ data.ContactNo }}</td>
<td>{{ data.StatusName }}</td>
<td>{{ data.CategoryName }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>