如何在Datagrid中隐藏已设为默认地址的default_address动作?
解决方案
要实现当地址已设为默认时隐藏default_address动作,你需要在该动作的配置中添加可见性判断表达式,利用Oro的表达式语言根据当前行的实体属性控制显示状态。
修改后的datagrids.yml配置
actions: update: type: navigate label: test.datagrid.address.update link: update_link icon: eye rowAction: false default_address: type: navigate label: 'Set as default address' link: default_address_link icon: star rowAction: false # 根据你的实体字段调整表达式,这里假设默认地址字段是isDefault visible: '!data.isDefault'
关键说明
- 表达式逻辑:
!data.isDefault表示当当前行实体的isDefault属性为false时,该动作才显示;如果地址已经是默认(isDefault为true),则自动隐藏。 - 字段适配:如果你的实体中默认地址的字段名是下划线格式(比如
is_default),则表达式改为!data.is_default,确保和实体的getter方法对应(比如getIsDefault()对应data.isDefault,getIs_default()对应data.is_default)。 - action_configuration替代写法:如果一定要用
action_configuration,正确配置如下:
default_address: # 其他配置不变 action_configuration: visible: '!data.isDefault'
之前配置未生效大概率是表达式写法错误,或者没有正确引用行数据的属性。
内容的提问来源于stack exchange,提问作者Vincent Vaufrey
相关产品推荐
相关产品推荐

