【问题标题】:Default Selected list item in Master view of the SplitAppSplitApp 主视图中的默认选定列表项
【发布时间】:2016-08-08 14:31:52
【问题描述】:

我有一个带有 Master -Detail 布局的 SplitApp。我想知道如何将主视图中的第一项设置为默认值,以便在加载应用程序详细信息视图时显示有关选择列表项的信息。因此,当用户自动打开应用程序时,应选择 Master 中的第一项,并在 Detail View 中显示信息。

我正在使用 Objectlist Item 作为主视图的控件。并且当前使用 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");

 }

问候, 马扬克

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    似乎有(隐藏的)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 事件和你已经存在的事件监听器将被触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 2011-07-18
      • 2019-08-14
      相关资源
      最近更新 更多