Detail页面下的Table容器获取数据
如下图所示:一个页面存在详情和列表,两个数据容器之间需要进行关联。

实现方式
- 使用related关联,使用DataStore数据来源类型获取数据。
- 使用related关联,使用dataSourceAction数据来源类型获取数据。
- 使用lookupFrom关联。
related
主要是用在列表模型的字段包含详情模型的字段,如:每个部门人员都属于某个部门
@Data@TModel(name = "部门人员")public class Person extends BaseModel<Long> {
@TModelField(name = "部门") @RelationMeta(name = "department") private Department department;} <Detail key="department" model="trantor_doc_Department"> <Fields> <Field name="name" /> </Fields> </Detail><!-- 通过 DataStore 获取数据--> <Table title="部门人员" model="trantor_doc_Person" related="department:department"> <Fields> <Field name="name" /> <Field name="age" /> </Fields> </Table><!-- 通过 dataSourceAction 获取数据--> <Table title="部门人员" model="trantor_doc_Person" related="department:department" dataSourceAction="base_xxxxx"> <Fields> <Field name="name" /> <Field name="age" /> </Fields> </Table>lookupFrom
主要是用在详情模型包含列表模型的字段List,如:一个部门下有很多员工
注意:
- lookUpFrom不支持分页。
- lookUpFrom 属性可以将某个表单的值用作另外一个表单的字段提交,在多个 Form 一起提交的场景非常有用。
@Data@TModel(name = "部门")public class Department extends BaseModel<Long> {
@TModelField(name = "员工列表") @RelationMeta( name = "DepartmentStaff", modelClass = Staff.class, opposite = RelationType.ToMany ) private List<Staff> staff;}<View title="lookupFrom"> <Form title="部门信息" key="department" model="trantor_doc_Department"> <Fields> <Field name="name" /> </Fields> </Form>
<!-- lookUpFrom 属性可以将某个表单的值用作另外一个表单的字段提交,在多个 Form 一起提交的场景非常有用。 --> <TableForm title="部门人员" model="trantor_doc_Person" lookupFrom="department.staff"> <Fields> <Field name="name" /> <Field name="age" /> </Fields> </TableForm>
<!-- 也可做单纯的关联 --> <Table title="部门人员" model="trantor_doc_Person" lookupFrom="department.staff"> <Fields> <Field name="name" /> <Field name="age" /> </Fields> </Table></View>实现示例
related
related 描述了多个数据容器之间的加载关系
lookupFrom
lookUpFrom 属性可以将某个表单的值用作另外一个表单的字段提交,在多个 Form 一起提交的场景非常有用。