【问题标题】:select event not fired on the same item未在同一项目上触发选择事件
【发布时间】:2018-08-22 15:16:19
【问题描述】:

我有一个用于手机浏览器的主从拆分应用程序。母版页显示主列表,当我单击一个项目时,它将导航到详细信息页。

问题是,从详细信息页面,我点击BackArrow 回到母版页并再次点击同一项目,onSelect 事件不会触发 > 无处可去。但如果我点击另一个项目,它就会起作用。

manifest.json 中,主视图级别 = 1,详细视图级别 = 2。

谢谢

下面是详细页面导航按钮

<Page
title="Title text"
showNavButton="true"
navButtonPress="onNavBack">

onNavBack 函数

onNavBack: function (oEvent) {
  var oHistory = History.getInstance();
  var sPreviousHash = oHistory.getPreviousHash();

  if (sPreviousHash !== undefined) {
      window.history.go(-1);
  } else {
  // no history handle
}}

onSelect 转发

, onSelect : function(oEvent) {
    var oTransferData = this.createTransferData(oContext);
    this.transferData.setData(oTransferData);
...
this.getRouter().navTo(
    "detail", {	ZITEM : oTransferData.ZITEM }
);
}
    
, createTransferData : function(oContext) {
    var oData = {};    
    oData.ZITEM = oContext.getProperty("ZITEM");
}

列表

<List
    id="masterList"
    noDataText="no data"
    mode="SingleSelectMaster"
    selectionChange="onSelect"
    includeItemInSelection="true"
>

【问题讨论】:

  • SplittApp floorpaln for master detail 已过时!此方案的新平面图是 FlexibleColumnLayout,请在继续之前考虑使用它:experience.sap.com/fiori-design-web/flexible-column-layout
  • 谢谢,我知道,但我正在研究相当古老的库,所以帮不上忙
  • 倒霉,但很高兴听到你的最新消息

标签: sapui5


【解决方案1】:

尝试 itemPress 事件而不是 select(确保项目在其 type 属性中具有“Active”)。它会在您单击项目时触发,并且仅在选择更改时触发。

【讨论】:

    【解决方案2】:

    您需要清除列表选择

    代码

    var oList = sap.ui.getCore().byId("masterList");
    if(oList)
      oList .removeSelections(true);
    

    【讨论】:

      猜你喜欢
      • 2016-11-30
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      相关资源
      最近更新 更多