如何刷新Ag-Grid中的特定行

时间:2019-05-07 12:05:37

标签: angular ag-grid ag-grid-ng2 ag-grid-angular

我建立了一个简单的网格:
enter image description here
第三列中的值是第一列和第二列中的值相乘的结果。
例如:1 * 3 = 3
enter image description here
我的问题是我只想刷新第一行。
(我的第二个问题是第三列中的值在所有行中都发生了更改,而不是在第一行和第二行的新值已更改的特定行中。但是,稍后我将尝试解决此问题。) /> 这是刷新网格的代码:

 /**THIS CODE IS RESPONSIBLE FOR REFRESHING THE GRID AFTER VALUES HAVE BEEN CHANGED */
   private gridApi;
   private gridColumnApi;
   onGridReady( params) {
     this.gridApi = params.api;
     this.gridColumnApi = params.columnApi;
     params.api.sizeColumnsToFit();
   }
   public RefreshRisqueBrutColumn() {
    const params = { force: true ,
      columns: ['RskBrt'],
      rowNodes: [] // specify rows, or all rows by default
    };
     this.gridColumnApi
     this.gridApi.refreshCells(params);

    };
   }
   /**THIS CODE IS RESPONSIBLE FOR REFRESHING THE GRID AFTER VALUES HAVE BEEN CHANGED */

我无法找到一种方法来仅刷新dropdownList值已更改的特定列。
要清楚,这是相关代码:

  

第一个ColumnOneCellRenderer:html文件

<select class="form-control"  (change)=" UpdateRisqueBrut($event.target);" >
    <br>
    <option >1- Très improbable</option>
    <option >2- Peu probable</option>
    <option >3- Possible</option>
    <option >4- Probable</option>
</select>
<br>
  

ColumnOneCellRenderer:ts文件

message: number;
  constructor(private data: DataService
    // , private comp: AppComponent
    ) { }
  ngOnInit() {
  }
  params: any;
  agInit(params: any): void {
    this.params = params;
  }
  public UpdateRisqueBrut(t) {
    if (t.value === '1- Très improbable') {
    this.data.changeMessage(1);
    } else if (t.value === '2- Peu probable') {
    this.data.changeMessage(2);
    } else if (t.value === '3- Possible') {
    this.data.changeMessage(3);
    } else if (t.value === '4- Probable') {
    this.data.changeMessage(4);
    }
  }
  

负责传达所选值的服务   从customCellRenderer到gridComponent:DataService

@Injectable()
export class DataService {
  private messageSource = new BehaviorSubject<number>(1);
  currentMessage = this.messageSource.asObservable();
  private messageSource2 = new BehaviorSubject<number>(1);
  currentMessage2 = this.messageSource2.asObservable();
  constructor() { }
  changeMessage(message: number) {
    this.messageSource.next(message);
  }
  changeMessage2(message: number) {
    this.messageSource2.next(message);
  }
}
  

网格组件中的相关ts代码以接收值:

  constructor(private data: DataService) { }
    message1: number;
    message2: number;
    ngOnInit() {
      this.data.currentMessage.subscribe(message => this.message1 = message
        );
      this.data.currentMessage2.subscribe(message => this.message2 = message);
    }
  

第三列定义:

 {
          headerName: 'RiskBrut',
          headerToolName: 'Consultez les échelles',
          field: 'RskBrt',
          cellRenderer: params => {
            return (
            this.message1*this.message2
            );
          }
        }

这是我的问题:
1 /如何刷新特定的列(通常来说)?
2 /如何仅刷新下拉列表中所选值已更改的列?
例如:用户更改第一列的值。
我在第一栏中发现他已经这样做了。
我只刷新第一列。
我希望我足够清楚。

0 个答案:

没有答案