我正在尝试在主视图中选择列表的第一项。我是从Detail控制器做的。我可以在列表中选择项目,但它不会触发事件以在详细信息视图中显示详细信息。
Master.view.xml
<List id="idMasterList" mode="{device>/listMode}" select="onSelect"
noDataText="{i18nMaster>masterListNoDataText}"
items="{ path: '/', sorter: {path: 'name'} }" icon="sap-icon://refresh">
<items>
<StandardListItem id="idStandardItem" type="{device>/listItemType}"
tooltip="{name}"
title="{name}"
info="{total}/{due}"
/>
</items>
</List>
Detail.controller.js
sap.ui.getCore().byId("__xmlview2--idMasterList").getItems()[0].setSelected(true);
我找不到任何可以直接解决此问题的信息(或)我没有得到它!!!
感谢任何帮助。
由于
答案 0 :(得分:4)
您可以在List上调用setSelectedItem()
方法而不是ListItem上的setSelected()
。 setSelectedItem()
方法确实有a third undocumented parameter:bFireEvent。
var list = this.byId("idMasterList");
list.setSelectedItem(list.getItems()[0], true /*selected*/, true /*fire event*/);
但请注意,这是一个未记录的参数。在将来的版本中它可能会在没有通知的情况下发生变化(但到现在为止)。
答案 1 :(得分:0)
如文档中所述,选择事件Fires when selection is changed via USER INTERACTION...
https://sapui5.netweaver.ondemand.com/docs/api/symbols/sap.m.ListBase.html#event:select
您必须使用setSelected(true)
行选择它,然后执行onSelect
功能。
我不知道您使用的是哪个版本的ui5,但认为select
事件已被弃用。您应该使用selectionChange
代替