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

Popular posts from this blog

.htaccess - First slash is removed after domain when entering a webpage in the browser -

Automatically create pages in phpfox -

c# - Farseer ContactListener is not working -