Le résultat initialement affiché dans un contrôle de texte est multiplié par le prix, la quantité chargée depuis Odata et affichée dans le contrôle d'entrée. Le but est, le résultat devrait être automatiquement mis à jour dans ce contrôle de texte après que le nouveau prix et la nouvelle quantité aient été saisis dans le contrôle de saisie. Avec le _onChange() je peux changer les propriétés (dans ce cas sont le prix et la quantité) de OData (j'ai vu les propriétés mises à jour et résultat dans le module de débogueur). Mais le résultat mis à jour n'apparaît tout simplement pas dans le contrôle de texte, est-ce que quelqu'un a une idée?Modification de la valeur OData dans le contrôle Texte à l'aide de JS et XML
XML:
<t:Column>
<Text text="Price"/>
<t:template>
<Input id="price" value="{Prc}" editable="true" change="_onChange"/>
</t:template>
</t:Column>
<t:Column>
<Text text="Quantity"/>
<t:template>
<Input id="quantity" value="{Qty}" editable="true" change="_onChange"/>
</t:template>
</t:Column>
JS:
_onChange: function(oEvent){
var test = oEvent.getSource();
var path = test.getBindingContext().getPath();
var obj = oModel.getProperty(path);
var stringID=test.sId;
//determine the current control using the predefined ID
switch(oEvent!=null){
case stringID.match("quantity")!=null
//read the Input of quantity in Input control
obj.Qty = test._$input.context.value;
break;
case stringID.match("price")!=null:
//read the input of price in Input control
obj.Prc = test._$input.context.value;
break;
};
var sum = parseInt(obj.Prc) * parseInt(obj.Qty);
obj.Result =sum.toString();
}