ag-grid - Ag-Grid:显示选项取决于另一个字段的选择
问题描述
我正在构建一个新网格,但我需要一个选择字段,根据第一个字段的选择显示选项。
我有两个 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 上的 PizzaListpizzaList: string[] = ['Pizza A','Pizza B', 'Pizza C'];
例如,如果我选择比萨 A,我希望该行仅显示选项“额外奶酪,洋葱”选项。
如果我选择比萨 B ,只出现选项“蘑菇、番茄”
我怎样才能做到这一点?
谢谢
解决方案
在您的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'
];
}
}
演示。
推荐阅读
- java - 将变量从片段发送到 MainActivity
- sql-server - docker pull 命令不允许密码并且总是从守护进程得到错误响应:未授权:需要身份验证
- asp.net-core - 其他项目的模板 asp.net core
- java - 如何在 Infinispan 中启用 JGroups 登录
- c# - c#为什么扩展方法是静态的并包装在静态类中
- pandas - 在 Pandas 中重新采样并进行线性插值
- laravel - Laravel 5.5,索引的默认路由不适用于资源控制器
- c++ - 在 C++ 中为方法调用自动插入括号
- css - 在 Angular 4 中导入材质设计布局网格
- sql - 在最后一分钟内选择行