Select 根据特定列的选择框中的项目
Select an item from a selectbox according to a specific column
我想select根据某列具体行(Xfeld,SAP专家会懂)。
这是我的代码和数据示例:
<Select id="areaSelect" items="{path: '/AreaSet'}" selectedKey="{=${/AreaSet}.find(function(o){return o.Xfeld === 'X';}).ZArea}">
<core:Item key="{ZArea}" text="{Name}" />
</Select>
示例数据:
"Zarea"
"Name"
"Xfeld"
"Area1"
"Area1desc"
"X"
"Area2"
"Cat2desc"
" "
Javascript XML 语法中超出为 binding 定义的规范的代码将不起作用。您可以在代码中使用格式化程序来设置所选项目。格式化程序函数将在创建项目并设置列中的标志时设置选定键。
<Select id="areaSelect" items="{path: '/AreaSet'}" >
<core:Item key="{
parts : [
{path: 'ZArea'},
{path: 'Xfeld'}
],
formatter: '.formatter.setSelection'
}"
text="{Name}" />
</Select>
在你的控制器中添加格式化程序
...
...
"com/sap/app/controller/BaseController",
"sap/ui/model/json/JSONModel",
"com/sap/app/model/formatter"
], function (BaseController, JSONModel, formatter) {
BaseController.extend("com.sap.app.controller.Detail", {
formatter: formatter,
onInit: function () {
...
...
在您的 fomatter 中定义一个函数来设置所选项目的键。
sap.ui.define([], function () {
"use strict";
return {
setSelection : function(key, isSelected){
if(isSelected=="X"){
var oSelect = this.byId("areaSelect");
oSelect.setSelectedKey(key);
}
return key;
}
}
});
我想select根据某列具体行(Xfeld,SAP专家会懂)。
这是我的代码和数据示例:
<Select id="areaSelect" items="{path: '/AreaSet'}" selectedKey="{=${/AreaSet}.find(function(o){return o.Xfeld === 'X';}).ZArea}">
<core:Item key="{ZArea}" text="{Name}" />
</Select>
示例数据:
"Zarea" | "Name" | "Xfeld" |
---|---|---|
"Area1" | "Area1desc" | "X" |
"Area2" | "Cat2desc" | " " |
Javascript XML 语法中超出为 binding 定义的规范的代码将不起作用。您可以在代码中使用格式化程序来设置所选项目。格式化程序函数将在创建项目并设置列中的标志时设置选定键。
<Select id="areaSelect" items="{path: '/AreaSet'}" >
<core:Item key="{
parts : [
{path: 'ZArea'},
{path: 'Xfeld'}
],
formatter: '.formatter.setSelection'
}"
text="{Name}" />
</Select>
在你的控制器中添加格式化程序
...
...
"com/sap/app/controller/BaseController",
"sap/ui/model/json/JSONModel",
"com/sap/app/model/formatter"
], function (BaseController, JSONModel, formatter) {
BaseController.extend("com.sap.app.controller.Detail", {
formatter: formatter,
onInit: function () {
...
...
在您的 fomatter 中定义一个函数来设置所选项目的键。
sap.ui.define([], function () {
"use strict";
return {
setSelection : function(key, isSelected){
if(isSelected=="X"){
var oSelect = this.byId("areaSelect");
oSelect.setSelectedKey(key);
}
return key;
}
}
});