Dorado 9 : 联动下拉框-Reference(sample-center)

如下视图,产品分类和产品:

Reference类型的联动下拉框是指针对立体数据模型而言的,如上视图如果将产品与产品分类做到一个数据模型中就是一颗属性结构,我们下面以组织结构图来说明,如下的一个立体数据模型:

如果将产品分类转换为department,而产品转换为employee,则我们希望当我们选择第一个部门的时候,下面的下拉框可以显示该部门下的员工:

而当我们选择第三个部门的时候,下面的下拉框就显示第三个部门对应的员工列表:

由于在Dorado中我们可以通过一个DataSet装载以上的这个立体结构的数据,下面我们可以考虑利用立体数据模型特有的机制,快速实现联动下拉框(当然有一定的局限性,后面再讲)

首先按照DataType立体数据模型的定义方式定义好DataType,如下:

然后创建一个DataSet与这个DataType关联:

然后新建两个DataSetDropDown,分别设置dataSet与dataPath属性:

尤其注意ddProducts的dataPath属性"#.products",这个dataPath的属性表示,根据用户在ddCategories中选择的category,再使用该category下对应的products集合作为ddProducts的下拉数据。

下面的配置就简单了,设置相关的编辑框元素的trigger属性,如:

另外在本例中Form定义了四个BasePropertyDef,为了下拉选择后可以同时对多个BasePropertyDef赋值,在DataSetDropDown的assignmentMap属性中做了属性设定:

DataSetDropDownassignmentMap
ddCategoriescategoryName,categoryId=id
ddProductsproductName,productId=id

局限性

由于数据ORM关系,产品下拉框中的内容完全由产品分类的值决定,而如果界面操作时,操作人员跳过产品分类的选择,直接选择产品,就会在ORM的处理上无所适从。