如何删除SAPUI5表中的行,并在行中嵌入删除按钮

时间:2015-04-11 19:11:21

标签: json sapui5

我有XML SAPUI5表,每行都嵌入了删除按钮。表绑定到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>

表绑定到JSON模型 我能够将上述JSON中的数据加载到表中。 我想要的是,当用户点击行中嵌入的删除按钮时,需要删除该特定行Table selection mode has to be None。如何通过上述代码作为基线来实现这一目标?

提前致谢.. Faddy

1 个答案:

答案 0 :(得分:1)

在按钮单击的处理程序上,您需要获取&#34;绑定路径&#34;。这是模型中从根到实例数据的路径。有了它,您可以获得它的价值,然后转到您的模型,选择相应的实例并将其删除。该表自动更新。绑定路径部分是:

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);
  }
}

希望有所帮助