我已经在SAPUI5中构建了一个表,在我的表中,我有一个输入字段和两个按钮。我已附上一张桌子的图片:
用户可以编辑和更改产品项目的数量值。用户单击对勾按钮后,它将获得数量值并在后端更新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);
},
任何解决方案如何获得我的数量值?
答案 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