展示动态属性
当项目中安装了动态属性扩展组件,则创建新的详情视图或列表视图时,可以使用 dynamicAttributes facet。
在视图展示动态属性的另一个方法就是使用 DynamicAttributesPanel。
使用 dynamicAttributes Facet
dynamicAttributes
facet 支持在 DataGrid
或 FormLayout
组件中展示动态属性,这两种组件需要绑定包含动态属性实体的数据容器。
在界面 XML 中的 facets
部分添加 dynamicAttributes
facet:
<view xmlns="http://jmix.io/schema/flowui/view"
xmlns:dynattr="http://jmix.io/schema/dynattr/flowui"
title="msg://carDetailView.title"
focusComponent="form">
<facets>
<dynattr:dynamicAttributes/>
<dataLoadCoordinator auto="true"/>
</facets>
<!--...-->
</view>
然后,需要在 Category attribute detail(分类属性编辑) 视图的 可见性 标签页选择此界面。
使用 DynamicAttributesPanel
如果实体实现了 Categorized
接口,则可以使用 DynamicAttributesPanel
组件来显示该实体的动态属性。此组件支持为特定实体实例选择分类,并指定此分类的动态属性的值。
如需在详情视图中使用 DynamicAttributesPanel
组件,请按照下列步骤:
-
确保在带分类实体的 fetch plan 中,包含了
category
属性:<data> <instance id="carDc" class="com.company.demo.entity.Car"> <fetchPlan extends="_base"> <property name="category" fetchPlan="_base"/> </fetchPlan> <loader/> </instance> </data>
-
在视图中添加
dynamicAttributesPanel
可视化组件:<layout> <formLayout id="form" dataContainer="carDc"> <textField id="numberField" property="number"/> <textField id="modelField" property="model"/> <dynattr:dynamicAttributesPanel dataContainer="carDc" categoryFieldVisible="true"/> </formLayout> <!--...--> </layout>
显式添加特定属性
最后,也可以手动在视图中添加动态属性。在 facets
中添加 dynamicAttributes facet,然后在 UI 组件绑定属性时,使用 +
前缀指定动态属性:
<facets>
<dynattr:dynamicAttributes/>
<dataLoadCoordinator auto="true"/>
</facets>
<data>
<instance id="carDc"
class="com.company.demo.entity.Car">
<fetchPlan extends="_base">
</fetchPlan>
<loader/>
</instance>
</data>
<layout>
<formLayout id="form" dataContainer="carDc">
<!--...-->
<textField property="+passengerNumberOfSeats"/>
</formLayout>
<!--...-->
</layout>
本页是否有帮助?
感谢您的反馈