2014-02-27 53 views
0

我正在使用gridview来计算行输入,但我不能得到最后一行的值为例假设我有6行在我的网格视图,所以我下面的代码工作正常的5行,但它不考虑最后一行。使用gridview计算

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; 

}

回答

0

尝试

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

它仍然无法正常工作。 – user2780807

0

你可以试试下面的:

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

,而不是你上面使用的一个,作为网格视图行的索引总是开始从0和不1也设置'我'小于网格视图行长度。