bindingで定義された仕様を超えたXML構文のJavaScriptコードは機能しません。コード内のフォーマッタを使用して、選択した項目を設定できます。フォーマッター機能は、項目が作成され、列のフラグが設定されているときに選択されたキーを設定します。お使いのコントローラで
<Select id="areaSelect" items="{path: '/AreaSet'}" >
<core:Item key="{
parts : [
{path: 'ZArea'},
{path: 'Xfeld'}
],
formatter: '.formatter.setSelection'
}"
text="{Name}" />
</Select>
選択した項目のキーを設定する関数を定義し、あなたのfomatterで
...
...
"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() {
...
...
フォーマッタを追加します。
sap.ui.define([], function() {
"use strict";
return {
setSelection : function(key, isSelected){
if(isSelected=="X"){
var oSelect = this.byId("areaSelect");
oSelect.setSelectedKey(key);
}
return key;
}
}
});
最初に感謝します。第2の方法は、これを実行する最速の方法です(これは完全に機能します)。 – flowx1710
各項目のフォーマッタで実行しているので、少しオーバーヘッドです。しかし、そのようなパフォーマンスの問題はあまりにも少ないです。選択した項目をバックエンドから個別に取得することができます。これは、より良い方法で、プロパティマッピングを行います –