【发布时间】:2023-03-12 15:30:02
【问题描述】:
我有一个 sapui5 树表,它有 2 列(1:文本视图,2:下拉框)。表格数据:
var oData = [
{
Scopes : "QT15", ExecutionGroup: "group2",
0 : {Scopes : "Job1", ExecutionGroup: "",
0 : {Scopes : "Act1", ExecutionGroup: "",
0 : {Scopes : "Material1",ExecutionGroup: ""},
1 : {Scopes : "Material2",ExecutionGroup: ""},
2 : {Scopes : "Material3",ExecutionGroup: ""}
},
1 : {Scopes : "Act2", ExecutionGroup: ""},
2 : {Scopes : "Act3", ExecutionGroup: ""}
},
1 : {Scopes : "Job2", ExecutionGroup: "",
0 : {Scopes : "11111", ExecutionGroup: ""},
1 : {Scopes : "22222", ExecutionGroup: ""},
2 : {Scopes : "33333", ExecutionGroup: ""}
}
},
{
Scopes : "QT16", ExecutionGroup: "",// ExecutionGroup: "exgroup1",
0 : {Scopes : "Job1", ExecutionGroup: "",
0 : {Scopes : "11111", ExecutionGroup: ""},
1 : {Scopes : "22222", ExecutionGroup: ""},
2 : {Scopes : "33333", ExecutionGroup: ""}
},
1 : {Scopes : "Job2", ExecutionGroup: "",
0 : {Scopes : "11111", ExecutionGroup: ""},
1 : {Scopes : "22222", ExecutionGroup: ""},
2 : {Scopes : "33333", ExecutionGroup: ""}
}
}
];
下拉数据: var 数据DD = [ {值:“group1”}, {值:“group2”}, {值:“group3”} ];
将数据绑定到模型:
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({
oData: oData,
dataDD: dataDD
});
sap.ui.getCore().setModel(oModel);
模型绑定到表,DropDown 设置为列上的模板。
应该出现的功能,如果用户从 DD 中选择任何值,
该节点的所有子节点的默认 DD 值必须更改为该值。
DD 上的初始值为“group1”。如果父 DD 值更改为“group2”,
孩子的显示DD值必须设置为“group2”)。
我想触发 DD 更改的功能。
var oDropdownBox = new sap.ui.commons.DropdownBox({
change: function(evt){
var path = evt.getSource().getBindingContext().getPath();
var value = evt.getSource().getValue();
var currentContextObj = sap.ui.getCore().getModel().getProperty(path);
console.log("path: " + path);
refreshChilds();
}
});
如何检查树上的节点是否有子节点?非常感谢!
【问题讨论】:
-
判断json是否有子还是解析是否有子
-
我想检查json对象(currentContextObj)是否有孩子。
-
您是否从后端生成了 json-tree-stucture (var oData)?我不明白如何从我的后端生成这种数据......感谢任何提示!