我尝试编写一个带RowAction
的简单表来删除行。
我已将表格成功绑定到JSONModel
(名为网站)。我已将功能附加到press
的{{1}}事件,并且可以看到它被成功调用。
但是当调用该函数时,我可以看到传递给事件函数的RowActionItem
对象有一些数据(例如,我可以得到sap.ui.base.Event
并正确查看要删除的索引),但行数据绑定上下文始终未定义。
我在这里查看了示例:https://openui5.hana.ondemand.com/explored.html#/sample/sap.ui.table.sample.RowAction/preview
有两点需要注意:
1-我不知道在事件函数中使用变量然后在其上使用TableRow
是什么。然后欢迎解释。
bind(this)
2-我自己的桌子& RowAction / RowActionItem(s)在视图中以XML格式声明(另一个给了我一些挑战!)。它看起来像这样:
var fnPress = this.handleActionPress.bind(this);
事件函数看起来像这样(直接来自样本):
<t:Table
id="clientsTable"
rows="{path:'sites>/data', templateShareable: false}"
selectionMode="Single"
selectionBehavior="RowOnly"
visibleRowCountMode="auto"
ariaLabelledBy="title"
rowSelectionChange="onSelectionChange"
rowActionCount="1" >
<t:toolbar>
<m:Toolbar>
<m:content>
<core:Icon
src="sap-icon://customer-and-contacts"
size="1.5rem"
color="#346187"/>
<m:Title id="clientsTableTitle" text="Client(s)" />
<m:ToolbarSpacer/>
<m:Button
id="addClient"
icon="sap-icon://add"
tooltip="Add Client"
press="onAddClientPressed" />
<m:Button
id="exportClients"
icon="sap-icon://action"
tooltip="Export Client(s)" />
</m:content>
</m:Toolbar>
</t:toolbar>
<t:columns>
<t:Column width="18rem">
<m:Label text="System Unique Id" />
<t:template>
<m:Text text="{sites>systemGUID}"/>
</t:template>
</t:Column>
<t:Column width="15rem">
<m:Label text="Client Name" />
<t:template>
<m:Input value="{sites>name}"/>
</t:template>
</t:Column>
<t:Column width="22rem">
<m:Label text="Client Details" />
<t:template>
<m:Input value="{sites>description}"/>
</t:template>
</t:Column>
</t:columns>
<t:rowActionTemplate>
<t:RowAction>
<t:RowActionItem
text="Delete Client"
type="Delete"
press="onDeleteClientRow" />
</t:RowAction>
</t:rowActionTemplate>
</t:Table>
截图: Results
我试图将eveything声明为样本中的代码,但也没有成功。我错过了什么?
答案 0 :(得分:0)
示例编码与您的编码之间的主要区别在于您的使用命名模型来绑定行。 这意味着为了获得绑定上下文,您必须传递模型名称参数。
var sName = oView.getModel().getProperty("name", oRow.getBindingContext("sites"));
或更短:
var sName = oRow.getBindingContext("sites").getObject("name");
以下是getBindingContext和getObject方法的API。