2016-08-08 38 views
0

我有一個SplitApp和Master -Detail佈局。我想知道如何將Master視圖中的第一項設置爲默認值,以便在加載應用程序Detail視圖時顯示有關選擇列表項的信息。因此,當用戶自動打開應用程序時,應首先選擇Master中的項目,然後Detail View顯示信息。默認在SplitApp的主視圖中選擇的列表項

我使用Objectlist Item作爲Master視圖的控件。目前使用select事件來選擇列表項。

var oList = new sap.m.List("idMasterList",{ 
    mode: sap.m.ListMode.SingleSelect, 
    select: [oController.onSelectItem, oController] 
      }); 

onSelectItem:功能(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

回答

2

好像有(隱藏)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。 select事件和您已經存在的事件偵聽器將被觸發。