Dorado 5 : 6.3.联动下拉框 (T22)

概述

在4.4节和4.5节,了解了Dorado中的主从绑定,在这一节仍然是类似的内容,只不过表现形式换成了下拉框。本示例链接如下:

 

准备工作

新建一工程CascadeDropdown,并且配置好数据库,具体步骤参考3.1.2节。

开发步骤

添加Dataset

步骤1:新建一Common ViewModel,文件名为CascadeDropdown。
步骤2:添加一AutoSqlDataset,选择Branch表,选择Branch表的所有字段,Dataset的设置如下:

属性

id

datasetBranch

originTable

BRANCH

步骤3:添加一AutoSqlDataset,选择Dept表,选择Dept表的所有字段,Dataset的设置如下:

属性

id

datasetDept

originTable

DEPT

步骤4:为datasetDept添加一BaseMatchRule,BaseMatchRule的属性设置如下:

属性

level

1

operator

=

originField

BRANCH_ID

table

DEPT

value

:BRANCH_ID

步骤5:为datasetDept设置MasterLink, MasterLink设置如下:

属性

masterDataset

datasetBranch

masterKeyFields

BRANCH_ID

detailKeyFields

BRANCH_ID

detailKeyParameters

BRANCH_ID

步骤6:添加一AutoSqlDataset,选择Employee表,选择Employee表的如下字段:

datasetEmployee表的设置如下:

属性

id

datasetEmployee

originTable

EMPLOYEE

步骤7:为datasetEmployee添加一BaseMatchRule,BaseMatchRule的属性设置如下:

属性

level

1

operator

=

originField

DEPT_ID

table

EMPLOYEE

value

:DEPT_ID

步骤8:为datasetEmployee设置MasterLink, MasterLink的属性设置如下:

属性

masterDataset

datasetDept

detailKeyParameters

DEPT_ID

masterKeyFields

DEPT_ID

detailKeyFields

DEPT_ID

步骤9:添加一FormDataset,id设置为datasetDataset。为其添加三个Field如下:

Name

Data Type

BRANCH_NAME

string

DEPT_NAME

string

EMPLOYEE_NAME

string

步骤10:在Source上点击右键,在弹出的菜单中选中New->Module,如图所示:

在弹出的对话框中输入Cascade,点击OK。
步骤10:选中刚才建立的datasetBranch,datasetDept,datasetEmployee,按Ctrl+C键复制。打开刚才创建的Module,按Ctrl+V键粘贴。如下图所示:

步骤11:添加一FormDataset,id设置为datasetDynamic。为其添加三个Field如下:

Name

Data Type

BRANCH_NAME

string

DEPT_NAME

string

EMPLOYEE_NAME

string

 

添加DropDown(记得设置列)

步骤1:添加一DatasetDropDown,属性设置如下:

属性

id

dropdownDept

dataset

datasetDept

mapValue

true

valueField

DEPT_NAME

labelField

DEPT_NAME

步骤2:添加一DatasetDropDown,属性设置如下:

属性

id

dropdownBranch

dataset

datasetBranch

mapValue

true

valueField

BRANCH_NAME

labelField

BRANCH_NAME

步骤3:添加一DatasetDropDown,属性设置如下:

属性

id

dropdownEmployee

dataset

datasetEmployee

mapValue

true

valueField

EMPLOYEE_NAME

labelField

EMPLOYEE_NAME

步骤4:设置datasetDataset列branch_name,dept_name,employee_name的DropDown属性分别为:dropdownBranch,dropdownDept ,dropdownEmployee。
步骤5:添加一DynamicDropDown,id设置为dropdownEmployee1,Dataset节点属性设置如下:

属性

sourceModule

Cascade

sourceDataset

datasetEmployee

步骤6:添加一DynamicDropDown,id设置为dropdownDept1,Dataset节点属性设置如下:

属性

sourceModule

Cascade

sourceDataset

datasetDept

为dropdownDept1的onSelect事件添加如下代码:

 dropdownEmployee1.parameters().setValue("dept_id", selectedObject.getValue("dept_id")); 
 return true;

步骤7:添加一DatasetDropDown,属性设置如下:

属性

id

dropdownBranch1

dataset

datasetBranch

为dropdownBranch1的onSelect事件添加如下代码:

 dropdownDept1.parameters().setValue("branch_id", selectedObject.getValue("branch_id")); 
 return true;

步骤8:设置datasetDynamic列branch_name,dept_name,employee_name的DropDown属性分别为:dropdownBranch1,dropdownDept1,dropdownEmployee1。

添加AutoForm

步骤1:添加一AutoForm,属性设置如下:

属性

id

formDataset

dataset

datasetDataset

width

30%

步骤2:选中formDataset,点击生成字段按钮。formDataset的FormGroup属性设置如下:

属性

ame

group1

title

利用DatasetDropDown实现的联动下拉

columnCount

1

步骤3:添加一AutoForm,属性设置如下:

属性

id

formDynamic

dataset

datasetDynamic

步骤4:选中formDynamic,点击生成字段按钮。formDynamic的FormGroup属性设置如下:

属性

title

利用DynamicDropDown实现的联动下拉

name

group1

columnCount

1

width

30%

 

创建Jsp页面

生成Jsp页面以后再编辑一下内容,最后结果如下:

<%@ page contentType="text/html; charset=UTF-8" %> 
<%@ taglib uri="http://www.bstek.com/dorado" prefix="d" %> 
 <html> 
 <head> 
 <title>联动下拉框</title> 
 </head> 
 <body> 
 <d:View config="CascadeDropdown"> 
 <d:AutoForm id="formDataset" /> 
 <d:AutoForm id="formDynamic" /> 
 </d:View> 
 </body> 
 </html>

查看运行效果

启动服务器后,浏览效果如下:

可以看到,当选择分公司或者部门的时候,其余的Dropdown都在进行动态的改变。

知识点

Dorado提供了MasterLink属性动态的为动态的SQL语句赋值的方法。在SQL语句中尚存在没有赋值的参数时,dataset会自动地检查MasterLink的设置。如果为MasterLink属性定义了属性值,dataset就会从该属性值配置中查找另一个dataset的相关参数值,并且匹配到当前dataset的参数集合中。
想深入了解,可以查看《Dorado 5用户指南 1.1》的5.3.4.3节。