【问题标题】:Ag-Grid: Show options depending the choice on another fieldAg-Grid:显示选项取决于另一个字段的选择
【发布时间】:2021-08-25 12:47:26
【问题描述】:

我正在构建一个新网格,但我需要一个选择字段,根据第一个字段的选择显示选项。

我有两个 cellEditor

  columnDefs = [

{ field: 'typePizza', editable:true, cellEditor:'pizza'},
{ field: 'toppings', editable: true, cellEditor: 'gridSelect' }

];

“披萨”是我选择一种披萨的选择,gridSelect 有一个多项选择,我可以选择一种或多种成分,但我需要显示受披萨类型影响的选项。

我在 gridSelectComponent 上有这个 toppingList: toppingList: string[] = ['Extra cheese', 'Mushroom', 'Onion', 'Pepperoni', 'Sausage', 'Tomato'];

PizzaComponent 上的 PizzaList pizzaList: string[] = ['Pizza A','Pizza B', 'Pizza C'];

例如,如果我选择 Pizza A,我希望该行仅显示选项“Extra Cheese, Onion”选项。

如果我选择Pizza B,只会出现选项“蘑菇、番茄

Stackblitz

我该怎么做?

谢谢

【问题讨论】:

  • 您需要发布完整代码或创建 Plunker。
  • @ViqMontana 我已经添加了 stackblitz。

标签: ag-grid ag-grid-angular


【解决方案1】:

在您的mat-select 上,如果下拉菜单被展开,请在您的类中调用一个方法:

(openedChange)="matOpenedChanged($event)"

在此方法中,查看typePizza 字段的值并适当设置您的下拉列表:

matOpenedChanged(event) {
    const currentPizzaType = this.params.data.typePizza;
    if (currentPizzaType == 'Pizza A') {
      this.toppingList = ['Extra cheese', 'Onion'];
    } else if (currentPizzaType == 'Pizza B') {
      this.toppingList = ['Mushroom', 'Tomato'];
    } else {
      this.toppingList = [
        'Extra cheese',
        'Mushroom',
        'Onion',
        'Pepperoni',
        'Sausage',
        'Tomato'
      ];
    }
  }

Demo.

【讨论】:

  • 如果对您有帮助,请将答案标记为已接受。
  • 非常感谢! :D 要动态地做到这一点,我需要做的是创建一个通过 id 返回值的方法,例如,对吗?
猜你喜欢
  • 1970-01-01
  • 2018-08-17
  • 2021-01-20
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
相关资源
最近更新 更多