gdjlc

培养良好的习惯,每天一点一滴的进步,终将会有收获。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

jQuery统计Repeater列的总和

<script type="text/javascript">              
        $(function () {              
            StatSum("lblAAcount", "spAAcount");  
            StatSum("lblBBcount", "spBBcount");  
        }  
        function StatSum(lblId, spId) {  
            var sum = 0;  
            $("span[id$='" + lblId +"']").each(function () {  
                sum += parseInt($(this).text());  
            });  
            $("#" + spId).text(sum);  
        }  
</script>  
<asp:Repeater ID="rptTest" runat="server" >  
   <HeaderTemplate>  
     <table>                                  
       <tr>  
        <th>年度</th>                                     
        <th>AA总人数</th>  
        <th>BB总人数</th>                                      
       </tr>  
   </HeaderTemplate>  
   <ItemTemplate>  
      <tr>  
       <td><%#Eval("year")%></td>  
       <td><asp:Label runat="server" ID="lblAAcount" Text='<%#Eval("AAcount")%>'></asp:Label></td>  
       <td><asp:Label runat="server" ID="lblBBcount" Text='<%#Eval("BBcount")%>'></asp:Label></td>  
      </tr>  
   </ItemTemplate>  
   <FooterTemplate>  
      <tr>  
        <td>合计</td>  
        <td><span id="spAAcount"></span></td>  
        <td><span id="spBBcount"></span></td>  
      </tr>  
     </table>  
    </FooterTemplate>  
</asp:Repeater> 

 

jQuery为表格添加合计行
以下来自实例,计算表格的第3列开始到最后一列的值之各,在表格后面生成合计行

var rowCount = $("#tb1").find("tr[type='daataRow']:visible").length;
if(rowCount > 1){    
    var columnCount = $("#tb1").find("tr:eq(0)").find("td").length;        
    //设置数组默认值为0,不过IE不支持fill语法
    var arr = Array(columnCount-2).fill(0);
    //如果要兼容IE,上面这行改为下面
    /*var arr = new Array(columnCount-2);
    for(var x=0;x<columnCount-2;x++){
        arr[x]=0;
    }*/
    //表格第一行是标题行,从第2行开始循环
    $("#tb1 tr:gt(0)").each(function(i,e){
       //从第3列起计算列的总和
       for(var x=0;x<columnCount-2;x++){          
         arr[x] += getTdVal(e, x+2);    
       }
    });
    var trHtml = '<tr type="daataRow"><td align="center">合计</td><td></td>';
    for(var x=0;x<arr.length;x++){
        var v = (arr[x] == 0) ? 0 : arr[x].toFixed(2);
        trHtml += '<td align="center">' + v + '</td>';
    }
    trHtml += '</tr>';
    $("#tb1 tr[type='daataRow']:last").after(trHtml);
}

function getTdVal(e, index){
   var result = 0;
   var tdObj = $(e).find("td:eq(" + index + ")");
   if(tdObj.length > 0){
       var val = $.trim(tdObj.text()).replace(',','');          
       if(val != '' && !isNaN(val)){
            result = parseFloat(val);
       }
   }
   return result;
}

 

posted on 2010-06-20 23:45  gdjlc  阅读(1587)  评论(3编辑  收藏  举报