gpt4 book ai didi

sapui5 - 如何处理sap.m.Table的itemPress?

转载 作者:行者123 更新时间:2023-12-04 08:57:01 30 4
gpt4 key购买 nike

我写了一个 XML View 。里面有一张 table :

<Table xmlns="sap.m"
id="myTable"
select=""
selectionChange=""
swipe=""
growingStarted=""
growingFinished=""
updateStarted=""
updateFinished=""
itemPress="console.log('clicked on item')"
>
<columns>
<!-- sap.m.Column -->
</columns>
<items>
<!-- sap.m.ListItemBase -->
</items>
</Table>

我使用 onInit 将行插入到表中的 Controller ,但是当我单击一行时,不显示该消息。

如果我使用 console.log(tablePippo.getProperty("itemPress"));在 Controller 内部,它抛出

Uncaught Error: Property "itemPress" does not exist in Element sap.m.Table#operationDetail--myTable

最佳答案

这似乎是人们在使用 sap.m.ListBase 时经常遇到的问题。相关控制。让我向您概述如何管理事件(尤其是完全激活它们):

混淆可能与 sap.m.ListMode 有关继承自 sap.m.ListBase 的控件数量和 sap.m.ListType继承自 sap.m.ListItemBase 的项目.

让我们假设以下示例列表:

<List
selectionChange=".onSelectionChange"
itemPress=".onItemPress"
delete=".onDelete"
>
<items>
<ObjectListItem
title="Hello ListItem"
press=".onObjectListItemPress"
/>
</items>
</List>

sap.m.ListMode (Sample)

如果您使用的是 sap.m.Listsap.m.Table , 事件触发取决于 mode你正在使用。不幸的是,没有 mode 的列表/表属性(property)会 不是 从它的一侧触发任何事件!如果您希望 List/Table 触发这些事件,则必须为其分配一种模式。例如:

<List
mode="SingleSelect"
...
>

这些是来自 sap.m.ListMode documentation 的可能模式:

无(默认)

由于没有 mode属性已分配, 不会触发任何事件!

List mode None



单选 |单选左

带有 mode="SingleSelect" 的列表控件在每个项目的右侧显示一个单选按钮并将触发 onSelectionChange用户单击给定的单选按钮控件后立即发生事件。使用 "SingleSelectLeft"只需将单选按钮移动到项目的左侧。

List mode SingleSelectLeft



单选主

带有 mode="SingleSelectMaster" 的列表控件将显示鼠标悬停时的手并触发 onSelectionChange在点击一个项目的情况下。

List mode SingleSelectMaster



多选
mode="MultiSelect" 中的列表控件提供一个复选框并触发 onSelectionChange每张支票都有事件 取消选中一个项目。

List mode MultiSelect



删除

使用 mode="Delete" 中的列表给你一个不错的删除按钮并触发 onDelete .

List mode Delete



sap.m.ListType (Sample)

还有一个你应该看看的属性: type您的元素的属性(property)。

每一项都继承自 sap.m.ListItemBase因此有一个名为 type 的属性.让我们看看它的样子:

<items>
<ObjectListItem
type="Active"
press=".onObjectListItemPress"
detailPress=".onDetailPress"
...
/>
</items>

sap.m.ListMode documentation 中列出了这些类型:

积极的

取决于 mode , itemPress名单 press可以触发列表项。选定的项目会突出显示,以便用户可以看到选定的内容。

Item type Active



细节

提供了一个详细按钮(带有图标 sap-icon://edit),它会触发 detailPress事件。

Item type Detail



细节和事件

顾名思义,这是 Detail 和 Active 类型的组合。所以你有细节按钮触发 detailPress单击按钮时,项目本身会触发列表事件 itemPress .

Item type DetailAndActive



导航

这些项目具有类似导航的外观,以及 itemPress和项目的 press叫做。

Item type Navigation



不事件

项目本身不会调用任何项目事件。

现在让我们来看看你的问题。您应该为您的 Table 控件分配一个 mode或为您的元素分配一个 type .在那之后,事件应该被触发。

通常我会避免使用 ListMode和一个 ListType同时,因为可能会出现意外行为,但请自行检查。

关于sapui5 - 如何处理sap.m.Table的itemPress?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327875/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com