OPENUI5-如何从sap.m.Input的suggestionRows中获取所选行
OPENUI5 - How to get the selected row from suggestionRows of sap.m.Input?
我正在努力从sap.m.Input的suggestionRows中获取所选行的所有列。我在jsbin中的以下链接下创建了一个示例http://jsbin.com/debavixazu/4/edit?html,控制台,输出有人能教我如何从suggestionRows中获取所选行吗。非常感谢。
谨致问候,赤丹
请运行并检查以下代码片段。基本上,您可以从所选行中获取DataModel和BindingContextPath。
<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"></script>
<script>
var oInput = new sap.m.Input('js-input', {
value: '',
type: sap.m.InputType.Text,
showValueHelp: true,
showSuggestion: true,
placeholder: "Search ..",
suggestionColumns: [
new sap.m.Column({
header: new sap.m.Label({
text: 'Device'
})
}),
new sap.m.Column({
header: new sap.m.Label({
text: 'Enabled'
})
})
],
suggestionItemSelected: function(oEvent) {
var oSelectedItem = oEvent.getParameters("selectedItem");
//console.log(oSelectedItem);
var oSelectedRow = oSelectedItem.selectedRow;
var oModel = oSelectedRow.getModel("myModel");
var oPath = oSelectedRow.getBindingContextPath();
alert(oModel.getProperty(oPath + "/device") + " " + oModel.getProperty(oPath + "/enabled"));
//alert(oSelectedItem);
}
});
var oModel = new sap.ui.model.json.JSONModel();
oModel.setData({
hardware: [{
device: "PC",
enabled: true
}, {
device: "Monitor",
enabled: true
}, {
device: "Keyboard",
enabled: false
}, {
device: "Mouse",
enabled: true
}, {
device: "Speaker",
enabled: false
}, {
device: "Scanner",
enabled: true
}, {
device: "Printer",
enabled: true
}]
});
sap.ui.getCore().setModel(oModel, 'myModel');
oColumnListItem = new sap.m.ColumnListItem({
cells: [
new sap.m.Label({
text: '{myModel>device}'
}),
new sap.m.Label({
text: '{myModel>enabled}'
})
]
});
oInput.bindAggregation("suggestionRows", "myModel>/hardware", oColumnListItem);
oInput.placeAt('content');
</script>
<body>
<div id='content'></div>
</body>