我有一个sap.m.select,它在应用程序的开始时加载了数据。 如果select控件包含数据,我只能前进。 我想确保加载数据,然后启用“Go”按钮。
我检查了列表控件是否有“attachUpdateFinished”。我们是否有类似的选择。 还是有其他方法可以做到吗?
先谢谢。
答案 0 :(得分:0)
我想你的sap.m.Select
控件绑定到模型?
在这种情况下,您可以在模型的attachRequestCompleted
事件处理程序中启用该按钮:
oModel.attachRequestCompleted(function (oEvent) {
oYourGoButton.setEnabled(true);
});
答案 1 :(得分:0)
将Button enabled
属性绑定到与sap.m.Select
相同的模型,并在控制器中创建以下自定义格式化程序:
enableFormatter:function(items){
if(items&&items.length>0) return true;
return false;
}
请运行并检查代码段。
<script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-libs="sap.m,sap.ui.commons" data-sap-ui-xx-bindingSyntax="complex"></script>
<!-- define an XMLView - normally done in a separate file -->
<script id="view1" type="sapui5/xmlview">
<mvc:View xmlns:core="sap.ui.core" xmlns:layout="sap.ui.commons.layout" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="my.own.controller" xmlns:html="http://www.w3.org/1999/xhtml">
<Select items="{/items}">
<core:Item key="{name}" text="{value}" />
</Select>
<Button text="Go" enabled="{path:'/items',formatter:'.enableFormatter'}" />
<Select items="{/itemsempty}">
<core:Item key="{name}" text="{value}" />
</Select>
<Button text="Go" enabled="{path:'/itemsempty',formatter:'.enableFormatter'}" />
</mvc:View>
</script>
<script>
sap.ui.controller("my.own.controller", {
onInit: function() {
var data = {
items: [{
name: 1,
value: 1
}, {
name: 2,
value: 2
}],
itemsempty: []
};
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData(data);
this.getView().setModel(oModel);
},
enableFormatter: function(items) {
if (items && items.length > 0) return true;
return false;
}
});
var myView = sap.ui.xmlview("myView", {
viewContent: jQuery('#view1').html()
}); //
myView.placeAt('content');
</script>
</head>
<body class='sapUiBody'>
<div id='content'></div>
</body>