我需要创建一个javascript循环,它将添加表列的每一行(rowCount)中的值并输出总数(QT_BOX * rowCount = prodQty)。 rowCountupdate很好,但prodQty总是返回值50.我想我必须忽略一些东西,但似乎无法找到它...
function updateCounters(){
var gridObject = document.BoxesGrid.getGridObject();
var rowCount = gridObject.getRowCount();
for(var i=0; i <= rowCount; i++){
var prodQty = gridObject.getCellValueByName(i, "QT_BOX");
document.getElementById("QT_READ").value =prodQty;
document.getElementById("QT_BOXES").value = rowCount;
}
}
答案 0 :(得分:0)
在您的FOR循环中,您使用当前行的prodQty(或QT_BOX)更新“QT_READ”..但它永远不会添加到之前的金额,因此您将始终拥有最后一行的prodQty!
这可能是它的样子:
function updateCounters(){
var gridObject = document.BoxesGrid.getGridObject();
var rowCount = gridObject.getRowCount();
for(var i=0; i <= rowCount; i++){
var prodQty = gridObject.getCellValueByName(i, "QT_BOX");
var total = document.getElementById("QT_READ").value;
document.getElementById("QT_READ").value = prodQty + total;
document.getElementById("QT_BOXES").value = rowCount;
}
}
答案 1 :(得分:0)
我不知道“BoxesGrid”是什么。但是通过你的代码,我发现你在循环中的每次重复中都以相同的值“rowCount”设置“QT_BOXES”。所以我猜BoxesGrid是一个有50行的网格,这就是为什么你总共得到50个。
您应该对“for”子句中的每个值求和,然后在“for”子句之外设置“QT_BOXES”。
function updateCounters(){
var gridObject = document.BoxesGrid.getGridObject();
var rowCount = gridObject.getRowCount();
var tot = 0;
for(var i=0; i <= rowCount; i++){
var prodQty = gridObject.getCellValueByName(i, "QT_BOX");
document.getElementById("QT_READ").value =prodQty;
tot += prodQty;
}
document.getElementById("QT_BOXES").value = tot;
}