我有一个带有Master -Detail布局的SplitApp。我想知道如何将主视图中的第一项设置为默认值,以便在加载应用程序时详细信息视图显示有关选择列表项的信息。因此,当用户自动打开应用程序时,应选择Master中的第一个项目,并且Detail View显示该信息。
我使用Objectlist Item作为Master视图的控件。目前正在使用select事件来选择列表项。
var oList = new sap.m.List("idMasterList",{
mode: sap.m.ListMode.SingleSelect,
select: [oController.onSelectItem, oController]
});
onSelectItem:function(oEvent){
//var app = sap.ui.getCore().byId("splitApp");
var oMasterList = sap.ui.getCore().byId("idMasterList");
var oSelItem = oMasterList.getSelectedItem();
var sPath = oSelItem.oBindingContexts.druginfo.sPath;
var oItem = sap.ui.getCore().getModel("druginfo").getProperty(sPath);
var oSelModel = new sap.ui.model.json.JSONModel(oItem) ;
sap.ui.getCore().setModel(oSelModel, "SelectedItem");
}
此致 Mayank
答案 0 :(得分:3)
在设置所选项目时似乎有(隐藏)API使select
事件触发:
ListBase.prototype.setSelectedItem = function(oListItem, bSelect, bFireEvent) {
if (this.indexOfItem(oListItem) < 0) {
jQuery.sap.log.warning("setSelectedItem is called without valid ListItem parameter on " + this);
return;
}
if (this._bSelectionMode) {
oListItem.setSelected((bSelect === undefined) ? true : !!bSelect);
bFireEvent && this._fireSelectionChangeEvent([oListItem]);
}
};
您可以在加载列表数据后使用setSelectedItem(例如change
聚合绑定事件items
),如下所示:
var oList = this.getView().byId("MyListID"),
oFirstItem = oList.getItems()[0];
oList.setSelectedItem(oFirstItem, true, true);
这将触发selectionChange
resp。 <{1}}事件将触发您已存在的事件侦听器。