angular - Cannot call setRowData unless using normal row model error in ag-grid -
having form ag-grid, though basic grid working gives error in console
cannot call setrowdata unless using normal row model
so of api functions including clear not working.
<form [formgroup]="myform" (ngsubmit)="search()" > <button type="submit" class="btn btn-primary ripple">search</button> </form> <div class="grid-wrapper animated fadein" > <ag-grid-angular #aggrid style="width: 100%; height: 315px;" class="ag-fresh" [gridoptions]="gridoptions" [columndefs]="columndefs" [rowdata]="rowdata" [datasource] = "datasource" enablecolresize rowselection="single" ></ag-grid-angular> </div> type sript code, in constructor defined grid , in search method set data return server api. in addition calling callback method pagination.
constructor(private masterdataservice:masterdataservice,private http: http) { this.myform = new formgroup({ }); this.gridoptions = <gridoptions>{ context:{}, rowmodeltype: 'pagination', paginationpagesize: 10, // ongridready: function(event) { this.gridoptions.api.sizecolumnstofit(); } // give error api undefined }; } search(){ let self = this; let datasource = { paginationpagesize: 10, getrows: (params: any) => { let headers: headers = new headers(); headers.set("content-type", "application/json"); console.log("here datasource"); this.formatreqdata(params.startrow, params.endrow); this.http.post(apputils.incident_search, this.myform.value, {headers: headers}).subscribe(res=>{ // server call if(res.json().result!= null){ self.gridoptions.api.setrowdata(res.json().result.paginatedlist); self.rowdata = res.json().result.paginatedlist; var rowsselfpage = self.rowdata; var lastrow = -1; params.successcallback(rowsselfpage, res.json().result.totalrecords); }else{ self.gridoptions.api.setrowdata(null); self.rowdata = null; } }); } related issue
if add condition ngif="rowdata.length" stop displaying empty grid, grid not load @ time.
<div class="grid-wrapper animated fadein" *ngif="rowdata.length > 0"> <ag-grid-angular #aggrid style="width: 100%; height: 315px;" class="ag-fresh" [gridoptions]="gridoptions" [columndefs]="columndefs" [rowdata]="rowdata" [datasource] = "datasource" enablecolresize rowselection="single" ></ag-grid-angular> </div>
since rowmodeltype set 'pagination', cannot use setrowdata() method change grid data. instead create local data source sets empty data, , use data source grid. example below:
clear(){ let self = this; let datasource = { getrows(params:any) { params.successcallback([],0); } }; this.gridoptions.api.setdatasource(datasource); }
Comments
Post a Comment