概述
主从绑定的概念在Dorado中是这么定义的,存在两个Dataset,有一个为主Dataset,有一个为从Dataset。当主Dataset进行变化的时候,从Dataset会根据主Dataset的变化来变化。
本示例用来展示Dataset中主从绑定,这一章节仅仅介绍主从表如何同时变化,下一章节讲介绍如何进行主从表的同时更新。本示例链接如下:
准备工作
新建一工程MasterDetail,并且配置好数据库,具体步骤参考3.1.2节。
开发步骤
添加Dataset
步骤1:新建一Common ViewModel,文件名为MasterDetail。
步骤2:添加一AutoSqlDataset,选择Dept表,选择Dept表的所有字段,AutoSqlDataset的属性设置如下:
属性 | 值 |
---|---|
id | datasetDept |
originTable | DEPT |
步骤3:添加一AutoSqlDataset,选择Employee表,选择Employee表的如下字段:
AutoSqlDataset的属性设置如下:
属性 | 值 |
---|---|
id | datasetEmployee |
originTable | EMPLOYEE |
步骤4:为datasetEmployee添加MatchRule,MatchRule的属性设置如下:
属性 | 值 |
---|---|
level | 1 |
operator | = |
originField | DEPT_ID |
table | EMPLOYEE |
value | :DEPT_ID |
步骤5:为datasetEmployee设置其MasterLink,只需要选择MasterLink即可,MasterLink位置如下:
MasterLink的属性设置如下:
属性 | 值 |
---|---|
masterDataset | datasetDept |
detailKeyParameters | DEPT_ID |
masterKeyFields | DEPT_ID |
detailKeyFields | DEPT_ID |
添加DataTable
步骤1:添加一DataTable,属性设置如下:
属性 | 值 |
---|---|
id | tableDept |
dataset | datasetDept |
width | 100% |
showHScrollBar | false |
步骤2:选中tableDept,点击自动生成字段按钮。
步骤3:添加一DataTable,属性设置如下:
属性 | 值 |
id | tableEmployee |
dataset | datasetEmployee |
width | 100% |
showHScrollBar | false |
步骤4:选中tableEmployee,点击自动生成字段按钮。
步骤5:添加一PagePiolt,属性设置如下:
属性 | 值 |
---|---|
id | pagepilotEmployee |
dataset | datasetEmployee |
创建Jsp页面
生成Jsp页面以后再编辑一下布局,最后结果如下:
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="http://www.bstek.com/dorado" prefix="d" %> <html> <head> <title>主从绑定1</title> </head> <body> <d:View config="MasterDetail"> <d:Layout type="border"> <d:Pane position="top"> <d:DataTable id="tableDept" /> </d:Pane> <d:Pane position="center"> <d:DataTable id="tableEmployee" /> </d:Pane> <d:Pane position="bottom"> <d:PagePilot id="pagepilotEmployee" /> </d:Pane> </d:Layout> </d:View> </body> </html>
查看运行效果
启动服务器后,浏览效果如下:
点击上图中上面表格的不同列,会发现下面的表格中的数据在一直变化。
知识点
Dorado提供了MasterLink属性动态的为动态的SQL语句赋值的方法。在SQL语句中尚存在没有赋值的参数时,dataset会自动地检查MasterLink的设置。如果为MasterLink属性定义了属性值,dataset就会从该属性值配置中查找另一个dataset的相关参数值,并且匹配到当前dataset的参数集合中。
想深入了解,可以查看《Dorado 5用户指南 v1.1》的5.3.4.3节。
Attachments:
worddav5c7bdf9eb4826369ab71fdf4fc0a2f16.png (image/png)
worddavcd98ee9977925083a5f6c9dd83d511d8.png (image/png)