我在xml视图中的表中有以下选择。
表:
<Table id="variables"
rows="{
path: 'modelname>/ZDATSet'
}">
...
选择
<m:Select
selectedKey="{modelname>Datetype}"
items="{
path: 'modelname>/ZTYPESet'
}">
<core:Item key="{modelname>Datetype}" text="modelname>Datetypetxt}" />
</m:Select>
此外,我在表格的另一行中有一个按钮。 在按下功能中,我想读取当前选择的选择键。
如果我尝试
var button = oEvent.getSource();
var context = button.getBindingContext("modelname");
var datetype = context.getProperty("Datetype");
我只获取预选值,但不是用户输入的更改。 (行中文本输入的问题相同)
我已将data-sap-ui-xx-bindingSyntax="complex"
放入index.html
答案 0 :(得分:1)
我现在找到了解决方案。
我认为<script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
data-sap-ui-xx-bindingSyntax="complex" ...
应该足以支持默认的双向绑定。
现在我将oModel.setDefaultBindingMode(sap.ui.model.BindingMode.TwoWay);
添加到模型中,它运行正常。
答案 1 :(得分:0)
如果您的按钮位于同一行,您可以在其新闻事件中执行以下操作:
onPress:function(oEvent){
var button = oEvent.getSource();
var context = button.getBindingContext("modelname"); //Points to the current row
var datetype = context.getProperty("DateType");
...
}
如果按钮位于表格之外,则必须提供更多详细信息:您使用的是哪个表格以及如何配置,是否要读取当前所选行中选择框的值?添加更多代码!
答案 2 :(得分:0)
根据您的代码段,您使用模型绑定来设置选择的项目和所选键。
在Button按下处理程序中,您可以从绑定上下文中获取当前值:
onPress: function (oEvent) {
oEvent.getSource().getBindingContext("modelname").getProperty("Datetype");
}
答案 3 :(得分:-1)
这里一旦您在 SelectionInputType.COMBOBOX
中设置了 selectedKey 属性,您就可以取如下值。
oController = this; var view = oController.getView(); var oModel = view.getModel(); var data = oModel.getData();