在sap.ui.table中选中带有复选框的单行

时间:2018-09-13 07:49:42

标签: sapui5

noobie_sapui5_developer

我正在尝试使用复选框选择sap.ui.table的单行。

此表有2种模式

  1. 单人

在多选模式下,每行都有一个复选框,可以选择多行-但我只希望选择一行

在单选模式下,它仅允许选择一行-但没有复选框。

如何用一张只有一个可选行的复选框来实现一张表?

sap.m.table是可能的,但我的要求是使其与sap.ui.table一起使用。

2 个答案:

答案 0 :(得分:1)

只要更改了选择,就可以使用rowSelectionChange事件,您可以取消选择其他行并保留选定的行。

希望这会有所帮助

答案 1 :(得分:1)

为什么我不建议您这样做:

复选框(selectionMode="MultiToggle")通常用于向用户发出信号,表明他能够选择不行,一个或多个选项,而单选按钮(selectionMode="Single")则告诉用户他只能选择一个选项。

请参见: material.ionngroupuxplanet-radiouxplanet-checkbox

对于您而言,建议您使用selectionMode="Single"并将selectionBehavior属性设置为RowRowOnlyRowSelector({{3 }}。


正如@jasbir所指出的,您可以可以使用SelectionBehaviour事件来调用一个函数,该函数获取刚刚选择的行的索引(rowSelectionChange) 。然后,您可以在setSelectedIndex上调用sap.ui.table.Table函数,并将获取的索引传递给它。这将删除以前选择的行,并将当前选择的行设置为选中状态。

<Table id="yourTableId"
    selectionMode="MultiToggle"
    rowSelectionChange="onSelectionChange">
</Table>

在控制器中。

onSelectionChange: function(oEvent) {
    var oYourTable = this.getView().byId("yourTableId"),
        iSelectedIndex = oEvent.getSource().getSelectedIndex();

    oYourTable.setSelectedIndex(iSelectedIndex);
}
  

注意:由于setSelectedIndex函数触发了rowSelectionChange,因此上述函数被触发了两次(另一个表明该解决方案不是预期的行为)。

查看getSelectedIndex的SAP Fiori准则以获取更多信息。