如何使用行中嵌入的删除按钮删除 SAPUI5 table 中的行

How to delete row in SAPUI5 table with delete button embedded in the row

我有 XML SAPUI5 table,每行都嵌入了删除按钮。 Table 绑定到 JSON..

<Table id="idUploadTable" mode="None" delete="handleDeleteListItem" width="100%" 
items="{uiFormModel>/attachmentList}">

    <columns>
        <Column id="idFileNameCol" vAlign="Middle">
            <header>
                <Label text="File Name" />
            </header>
        </Column>
        <Column id="idUploadedOByCol" hAlign="Left" vAlign="Middle">
            <header>
                <Label text="Uploaded By" />
            </header>
        </Column>
        <Column id="idUploadedOnCol" hAlign="Left" vAlign="Middle">
            <header>
                <Label text="Uploaded On" />
            </header>
        </Column>
        <Column id="idUploadedDelCol" hAlign="Left" vAlign="Middle">
            <header>
                <Label text="" />
            </header>
        </Column>                           
    </columns>
    <items>
        <ColumnListItem>
            <cells>
                <Link text="{uiFormModel>fileName}" href="{uiFormModel>fileLocation}" target="blank"/>
                <Text text="{uiFormModel>uploadedByUserName}" />
                <Text text="{uiFormModel>uploadedOn}" />
                <Button icon="sap-icon://delete" press="handleDeleteAttachment">
                    <customData>
                        <core:CustomData key="multi" value="true" />
                    </customData>
                </Button>                                   
            </cells>
        </ColumnListItem>
    </items>
</Table>

Table 绑定到 JSON 模型 我能够将数据从上面的 JSON 加载到 table。 我想要的是,当用户单击嵌入在该行中的删除按钮时,需要删除该特定行Table selection mode has to be None。我怎样才能以上述代码为基准实现这一点?

提前致谢.. 法迪

在按钮单击的处理程序中,您需要获取 "binding path"。这是模型中从根到实例数据的路径。有了它,您可以获得它的价值,然后转到您的模型,select 相应的实例并将其删除。 table 自动更新。绑定路径部分类似于:

new sap.ui.commons.Button({ /* ... */
  press: function(e){
    var sPath = e.getSource().getBindingContext('uiFormModel').getPath();
    var oModel = sap.ui.getCore().getModel('uiFormModel');
    var oRowData = oModel.getProperty(sPath);
  }
}

希望对您有所帮助