首页 > 解决方案 > ColumnListItem - 事件处理程序“按下”未触发

问题描述

我正在使用 ColumnListItem 在 Overview.view.xml 中显示销售订单列表。当用户点击列表中的一项(销售订单)时,应用程序应该导航到 Detail.view.xml。

onPress在 Overview.Controller.js 中定义了事件处理程序。但是应用程序没有执行该功能(我放在alert()那里并没有触发)。为什么onPress()没有触发?我该如何调试?

<Table items="{myOdata>/SalesOrderSet}">
  <ColumnListItem type="Navigation" detailPress=".onPress">
    <!-- ... -->
  </ColumnListItem>
  <columns>
    <!-- ... -->
  </columns>
</Table>
onPress: function (oEvent) {
  //This code was generated by the layout editor.
  alert("In");
  var loOverview = "Data from Overview";
  var oItem = oEvent.getSource();
  var loRouter = sap.ui.core.UIComponent.getRouterFor(this);
  loRouter.navTo("Detail", {
    value: oItem.getBindingContext("oModel").getPath().substr(1)
  });
},

标签: sapui5

解决方案


press 功能不起作用,因为您没有为它编写正确的处理程序。根据您的代码,处理程序是为detailPress. 只是一个错字,将处理程序更改为press它应该可以工作。

当前的:

<ColumnListItem type="Navigation" detailPress=".onPress">

需要更改:

<ColumnListItem type="Navigation" press=".onPress">

推荐阅读