[index.js]
var priceObj;
var grid = new ej.grids.Grid({
---
columns: [
{
field: 'Freight',
headerText: 'Freight',
textAlign: 'Right',
editType: 'numericedit',
width: 140,
format: 'C2',
validationRules: { required: true },
edit: { params: { change: freightChange } },
edit: {
create: function () {
var ele = document.createElement('input');
return ele;
},
read: function () {
return priceObj.value;
},
destroy: function () {
priceObj.destroy();
},
write: function (args) {
// add oninput event
args.element.addEventListener('input', freightChange);
priceObj = new ej.inputs.NumericTextBox({
value: args.rowData[args.column.field],
change: function (args) {
var totalCostFieldEle = grid.element.querySelector(
'#' + grid.element.id + 'TotalCost'
);
totalCostFieldEle.value = args.value * 100;
},
});
priceObj.appendTo(args.element);
},
},
},
{
field: 'TotalCost',
headerText: 'Total Cost',
allowEditing: false,
width: 160,
},
],
});
grid.appendTo('#Grid');
function freightChange(args) {
// get the other
field input element using the Grid element id & field name and changing
its value
grid.element.querySelector('#' + grid.element.id + 'TotalCost').value =
parseInt(args.target.value) ? parseInt(args.target.value) * 100 : 0;
}
|