Расчет с использованием gridview

0

Я использую gridview для вычисления ввода строк, но я не могу получить значения для последней строки для примера. Предположим, у меня есть 6 строк в моем представлении сетки, поэтому мой нижний код работает нормально для 5 строк, но не рассматривает последнюю строку.

function HSACalculator(TotalContributionAmount, ddfequ) {
var taxPercent = 10; 
var txtValue = 0;
var ddlValue = "";
var freq = 0;
var AnnualCost = 0;
var PerMonthPay = 0;
var MaxValuePerPay = 0;
var MaxValueAnnual = 0;

var grid = $(":asp(gvHSACalculator)")[0]; 

var cellPivot;
debugger;
if (grid.rows.length > 0) {
    for (i = 1; i < grid.rows.length ; i++) {

        cell = grid.rows[i].cells[1];
        cellDDL = grid.rows[i].cells[2];
        for (j = 0; j <= cell.childNodes.length; j++) {
            if (cell.childNodes[j].type == "text") {
                txtValue = cell.childNodes[j].value;
            }
            if (cellDDL.childNodes[j].type == "select-one") {
                ddlValue = cellDDL.childNodes[j][cellDDL.childNodes[j].selectedIndex].value;
            }
        }
        if (ddlValue != null) {
            freq = getFrequencyValueNew(ddlValue);
            AnnualCost = AnnualCost + freq * txtValue;
            PerMonthPay = AnnualCost / 12;
        }
    }

    var maxCont = document.getElementById("lblMaxContPerYear").innerHTML;

    if (parseFloat(maxCont.replace("$", "").replace(",", "")) < parseFloat((Math.round(AnnualCost * 100) / 100))) {
        alert("Annual Contribution can not be more than Max Contribution " + maxCont);
        ddfreq = getFrequencyValue(ddfequ);
        document.getElementById("lblDeductionPerPay").innerHTML = formatDollar(Math.round((AnnualCost / ddfreq) * 100) / 100);
        document.getElementById("lblDeductionAnnual").innerHTML = formatDollar(Math.round(AnnualCost * 100) / 100);
        document.getElementById("lblMaximumAnnual").innerHTML = formatDollar(Math.round(TotalContributionAmount * 100) / 100);

        document.getElementById("lblTaxSavingPerPay").value = formatDollar((AnnualCost * taxPercent) / 100);
        document.getElementById("lblTaxSavingAnnual").value = formatDollar((AnnualCost * taxPercent) / 100); // AnnualCost / 12;
    }
    else
    {
        ddfreq = getFrequencyValue(ddfequ);
        document.getElementById("txtAnnualContribution").value = formatDollar(Math.round(AnnualCost * 100) / 100);
        document.getElementById("txtActualPerDeduction").value = formatDollar(Math.round((AnnualCost / ddfreq) * 100) / 100);
        document.getElementById("lblDeductionPerPay").innerHTML = formatDollar(Math.round((AnnualCost / ddfreq) * 100) / 100);
        document.getElementById("lblDeductionAnnual").innerHTML = formatDollar(Math.round(AnnualCost * 100) / 100);
        document.getElementById("lblMaximumAnnual").innerHTML = formatDollar(Math.round(TotalContributionAmount * 100) / 100);
        document.getElementById("lblTaxSavingPerPay").innerHTML = formatDollar((AnnualCost * taxPercent) / 100);
        document.getElementById("lblTaxSavingAnnual").innerHTML = formatDollar((AnnualCost * taxPercent) / 100); // AnnualCost / 12;
        document.getElementById("lblMaxContPerYear").innerHTML = formatDollar(Math.round((TotalContributionAmount) * 100) / 100);
    }'
}

return false;

}

Теги:

2 ответа

0

Можете ли вы попробовать следующее:

for (i = 0; i < grid.rows.length ; i++)

вместо того, который вы использовали выше, поскольку индекс строки сетки всегда начинается с 0, а не 1 также устанавливает "i" меньше, чем длина строк сетки.

0

Пытаться

 for (i = 1; i <= grid.rows.length ; i++) 
  • 0
    это все еще не работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню