SAPPUI5从表

时间:2018-09-19 02:51:45

标签: javascript-events sapui5

我已经在SAPUI5中构建了一个表,在我的表中,我有一个输入字段和两个按钮。我已附上一张桌子的图片:enter image description here

用户可以编辑和更改产品项目的数量值。用户单击对勾按钮后,它将获得数量值并在后端更新odata服务。现在的问题是我无法获得单击对勾按钮时输入的“数量”值。

以下是我的代码

view.xml

<Table id="idProductsTable" inset="false" items="{path:'orderModel>/TXN_ORDDTLs'}">
            <columns>
                <Column minScreenWidth="Tablet" demandPopin="true">
                    <Text text="Name"/>
                </Column>
                <Column minScreenWidth="Tablet" demandPopin="true">
                    <Text text="Quantity"/>
                </Column>
                <Column minScreenWidth="Tablet" demandPopin="true">
                    <Text text="UOM"/>
                </Column>
                <Column minScreenWidth="Tablet" demandPopin="true">
                    <Text text="Price"/>
                </Column>
                <Column minScreenWidth="Tablet" demandPopin="true">
                    <Text text="Subtotal"/>
                </Column>
                <Column id="buttonColumn1" width="5%" minScreenWidth="Tablet" demandPopin="true" popinDisplay="WithoutHeader" hAlign="Right" class="sapMTableContentMargin">
                    <header>
                        <Label id="cartItemEdit" text="Cancel" visible="{= ${device>/system/phone}}"/>
                    </header>
                </Column>
                <Column id="buttonColumn2" width="5%" minScreenWidth="Tablet" demandPopin="true" popinDisplay="WithoutHeader" hAlign="Right" class="sapMTableContentMargin">
                    <header>
                        <Label id="cartItemDelete" text="Cancel" visible="{= ${device>/system/phone}}"/>
                    </header>
                </Column>
            </columns>
            <items>
                <ColumnListItem vAlign="Middle">
                    <cells>
                        <Text text="{orderModel>PRODUCT_NO}"/>
                        <Input id="itemPrdQty" value="{orderModel>PRD_QTY}" width="70px"/>
                        <Text text="{orderModel>UOM_CD}"/>
                        <Text text="{orderModel>PRICE}"/>
                        <Text text="{orderModel>GROSS_AMT}"/>
                        <!-- Add Button -->
                        <Button id="editCartButton" tooltip="Edit Item" icon="sap-icon://accept" press="editCartItemPressed" type="Transparent"/>
                        <Button id="deleteCartButton" tooltip="Delete Item" icon="sap-icon://decline" press="deleteCartItemPressed" type="Transparent"/>
                    </cells>
                </ColumnListItem>
            </items>
        </Table>

Controller.js

        editCartItemPressed: function(oEvent){
            var NoOfItems = this.getView().byId("itemPrdQty").getValue();
            console.log(NoOfItems);


        },

任何解决方案如何获得我的数量值?

1 个答案:

答案 0 :(得分:1)

好吧,我明白了您要在这里做什么,但是如果您希望它符合fiori准则,那么您需要执行以下操作:

  • 添加到表格模式=“ SingleSelect”:

    <Table id="idProductsTable" mode="SingleSelect" inset="false" items=" 
    

    {path:'orderModel> / TXN_ORDDTLs'}“>

  • 从表格中删除按钮

  • 重新创建表格工具栏内的按钮

  • 将您的方法更改为此:

    editCartItemPressed: function(){
        var oItem= this.getView().byId("idProductsTable").getSelectedItem();
        var oEntry = oItem.getBindingContext("yourODataModel").getObject();
        console.log(oEntry.Quantity); //your quantity you want to update
    
        //yourODataModel.update(oItem.getBindingContextPath(), oEntry, {
        //    success: function(){}, // your success handler
        //    error:   function(){} // your error handler
        //});
    
    
    },
    

结果: 您有一个带有单选按钮的表。使用这些按钮,您可以选择一行并通过表格工具栏中的按钮进行编辑/删除。

我建议您在创建应用之前检查fiori设计指南,如果不确定如何获得所需结果,请访问以下网址的示例:https://sapui5.hana.ondemand.com/1.54.8/#/controls