列表项的setSelected方法不会触发select事件 - SAPUI5

时间:2016-02-25 14:25:28

标签: sapui5

我正在尝试在主视图中选择列表的第一项。我是从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);

我找不到任何可以直接解决此问题的信息(或)我没有得到它!!!

感谢任何帮助。

由于

2 个答案:

答案 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*/);

请参阅JSBin example

但请注意,这是一个未记录的参数。在将来的版本中它可能会在没有通知的情况下发生变化(但到现在为止)。

答案 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代替