代码之家  ›  专栏  ›  技术社区  ›  THI

将行值绑定到OData模型SAP UI5

  •  0
  • THI  · 技术社区  · 7 年前

    我有一个表有两列——一列是用户可以输入要返回的值,另一列是复选框。如果用户在项目行中输入值,我将选中该复选框。如果值大于0,则仅选中复选框。我的问题是下面的代码,如果我在第三行输入一个值,该复选框会被选中,但即使在第一行的复选框旁边也会被选中。我认为问题出在stmt:tablemodel.setproperty(“/itemset/results/0/returnitemflag”,“x”)中,因为我给出的是“0”,所以第一行也得到了值。如何指向正确的结果编号。 控制器JS

    qtyChange: function(oEvent) {
    
                var a = oEvent.getSource();
                var input = a.getValue()
                var row = oEvent.getSource().getParent().getParent();
                var index = row.getIndex();
    
                var oTable = vc.getView().byId("takeStockHistoryDetailTable");
                var selectedRowPath = oTable.getContextByIndex(index).getPath();
                var tableModel = vc.getView().getModel(TAKE_STOCK_ORDER_DETAIL);
                var selectedPart = tableModel.getObject(selectedRowPath);
                var QtyOnHand = selectedPart.QtyOnHand;
                var UnitP = selectedPart.UnitPrice;
    
                var f = parseInt(input);
                var g = parseInt(QtyOnHand);
                var h = parseFloat(UnitP);
    
                if (f > g) {
    
                    sap.m.MessageToast.show("Return quantity is more than available quantity");
                    a.setValue("");
    
                } else if (f === 0 || input === "") {
                    selectedPart.ReturnItemFlag = 'Y';
                    tableModel.setProperty("/ItemSet/results/0/ReturnItemFlag", "Y");
    
                } else {
    
                    selectedPart.ReturnItemFlag = 'X';
                    selectedPart.QtyToReturn = input;
    
                    var sub = input * h;
                    // debugger;
                    var sub1 = sub.toString();
                    selectedPart.Subtotal = sub1;
    
                    tableModel.setProperty("/ItemSet/results/0/ReturnItemFlag", "X");
                    tableModel.setProperty("/ItemSet/results/0/Subtotal", sub1);
                }
    
            },
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Nandan Chaturvedi    7 年前

    qtyChange: function(oEvent){
        
        var oColumnListItem = oEvent.getSource().getParent();
        var sPath = oColumnListItem.getBindingContextPath("yourModelName");
    
    OR 
        var sPath = oColumnListItem.getBindingContext("yourModelName").getPath();
    
        var sReturnItemFlagPath = sPath + "/ReturnItemFlag";
    
        tableModel.setProperty(sReturnItemFlagPath,"newValue");
    
    }