步骤1:新增并配置Menu控件
双击打开MenuManage.view.xml这个视图文件,在【ViewConfig】节点下的【View】节点下添加一个Menu控件。
设置Menu控件属性如下:
属性 | 值 | 说明 |
|---|---|---|
| id | menuOper | 控件的Id |
接下来在【menuOper】下新增3个MenuItem,MenuItem1~MenuItem3,分别设置MenuItem的属性如下:
MenuItem | name | caption | icon | tags |
|---|---|---|---|---|
| MenuItem1 | menuitemAdd | 添加同级节点 | url(>skin>common/icons.gif) -120px -0px | add |
| MenuItem2 | menuitemAddChild | 添加下级节点 | url(>skin>common/icons.gif) -120px -0px | addChild |
| MenuItem3 | menuitemDel | 删除当前节点 | url(>skin>common/icons.gif) -140px -0px | del |
如下图所示:

步骤2:将Menu控件绑定到DataTree
鼠标选中【datatreeMenu】控件,切换到Client Events事件列表,在onContextMenu事件上增加menuOper参数,如下图所示:

在onContextMenu事件编辑区中输入如下代码:
menuOper.show({
position:{
left:arg.event.pageX,
top:arg.event.pageY
}
});
步骤3:添加并配置Container
鼠标展开SplitPanel控件下的MainControl节点下的Container控件下,再添加一个Container控件,将右侧工作区切换到 Layout属性设置区中,将Container控件的Layout属性设置为hbox,并将其移动到FieldSet控件的上方:

步骤4:添加并配置Button
接下来在Container中添加4个Button控件,Button1~Button4,分别设置Button的属性如下:
Button | id | caption | icon | tags |
|---|---|---|---|---|
| Button1 | buttonAdd | 添加同级节点 | url(>skin>common/icons.gif) -120px -0px | add |
| Button2 | buttonAddChild | 添加下级节点 | url(>skin>common/icons.gif) -120px -0px | addChild |
| Button3 | buttonDel | 删除 | url(>skin>common/icons.gif) -140px -0px | del |
| Button4 | buttonSave | 保存 | url(>skin>common/icons.gif) -160px -20px |
步骤5:新增并配置UpdateAction
接下来保存数据需要添加UpdateAction控件,在【ViewConfig】节点下的【View】节点下添加UpdateAction控件,设置控件属性如下:
属性 | 值 | 说明 |
|---|---|---|
| id | updateactionSave | 控件的Id |
| dataResolver | menuService#saveAll | 通过执行menuService这个bean中的saveAll方法对传递到后台的主从表数据进行持久化 |
| executingMessage | 正在保存... | 当此Action正在执行时希望系统显示给用户的提示信息 |
| successMessage | 保存成功! | 当此Action执行成功之后自动提示的信息。 |
| hotkey | ctrl+s | 执行此Action的热键 |
然后为UpdateAction添加子节点UpdateItem,绑定需要提交的DataSet数据集:
鼠标选中updateactionSave,在右侧【Dorado7 ToolBox】工作区的【Others】分类下面双击【UpdateItem】,设置属性如下:
属性 | 值 | 说明 |
|---|---|---|
| dataSet | datasetMenu | 实现DataSet数据采集 |
界面如下图所示:

步骤6:为buttonSave按钮绑定事件
在点击【buttonSave】控件时需要执行【updateactionSave】操作,因此需要设定按钮属性如下:
属性 | 值 | 说明 |
|---|---|---|
| action | updateactionSave | 通过绑定UpdateAction,点击按钮便执行UpdateAction操作 |
步骤7:利用控件标签为MenuItem和Button控件添加事件
鼠标选中【View】节点,切换到Client Events事件列表,在onReady事件编辑区中输入如下代码:
view.get("^add").addListener("onClick", function(self,arg,datatreeMenu){
var currentNode = datatreeMenu.get("currentNode");
if (!currentNode) {
throw new dorado.Exception("请先点中一个树节点!");
}
var currentEntity = currentNode.get("data");
currentEntity.createBrother({
menuName : "<菜单名称>"
});
});
view.get("^addChild").addListener("onClick", function(self,arg,datatreeMenu){
var currentNode = datatreeMenu.get("currentNode");
if (!currentNode) {
throw new dorado.Exception("请先点中一个树节点!");
}
var currentEntity = currentNode.get("data");
currentNode.expandAsync(function() {
currentEntity.createChild("slMenuSet", {
menuName : "<菜单名称>"
});
});
});
view.get("^del").addListener("onClick", function(self,arg,datatreeMenu,updateactionSave){
var currentEntity = datatreeMenu.get("currentEntity");
if (!currentEntity) {
throw new dorado.Exception("请先点中一个树节点!");
}
currentEntity.remove();
updateactionSave.execute();
});
到目前为止,View部分设置完毕,接下来需要准备后台服务。