如何根据下拉列表中的值选择更新 ngx-datatable 中下一个单元格的值?

How can I update the next cell's value in ngx-datatable based on the selection of value in a dropdown?

我正在尝试更新另一个单元格值,在第一个单元格中我有一个下拉列表,并且根据下拉列表中值的选择,我必须更新下一列中下拉列表的值。

如何使用 ngx-datatable-columns 实现此目的?

这是包含下拉列表的单元格:

 <ngx-datatable-column name="status" prop="operationStatus" >
    <ng-template let-value="value" let-row="row" let-rowIndex="rowIndex" ngx-datatable-cell-template>

        <select class="status" (change)="changeStatus($event, rowIndex)">
          <option *ngFor="let e of selectableGerateStatus" [selected]="value == e.id">
               {{e.label}}
            </option>
        </select>

    </ng-template>
  </ngx-datatable-column>

这是需要更新的单元格:

<ngx-datatable-column name="casette" prop="cassette1Bill">
    <ng-template let-column="column" ngx-datatable-header-template>
      <span>Kassette 1</span>
    </ng-template>
    <ng-template let-value="value" let-row="row" let-rowIndex="rowIndex" ngx-datatable-cell-template>
          <div>{{value}}</div>

    </ng-template>
  </ngx-datatable-column>

实际上,您已经拥有整行的数据供您使用,因为您在列上使用了 let-row。由于您已将 row 分配给 let-row,因此您可以将 row(这是一个包含该行数据的对象)传递给您的 (change) 事件绑定。

在您的 .html 文件中,只需对该列的下拉菜单进行以下更改:

<ngx-datatable-column name="status" prop="operationStatus" >
    <ng-template let-value="value" let-row="row" let-rowIndex="rowIndex" ngx-datatable-cell-template>

    <select class="status" (change)="changeStatus(row)">
      <option *ngFor="let e of selectableGerateStatus" [selected]="value == e.id">
               {{e.label}}
      </option>
    </select>

  </ng-template>
</ngx-datatable-column>

基本上,我们已经将行详细信息 row 传递给 changeStatus()

然后在您的 component.ts 上,只需将该值分配给 cassette1Bill

changeStatus(row) {
  //console.log(row)
  row.cassette1Bill = '22';
}

这应该有效。该列应反映所选下拉值的更新值。