asp.net repeater统计表列和值求比率

第一步、统计下图画红框的行列和值,如图:

第二步、统计下图红框的行列和值,如图:

第三步、计算方式:

 

<asp:Repeater ID="rptList" runat="server">
                <HeaderTemplate>
                    <table id="tbid" width="100%" border="0" cellspacing="0" cellpadding="0" class="border_table">
                        <thead>
                        <tr>
                            <div style="width: 100%; height: 30px; line-height: 30px; border-bottom-color: #F9F9F9; text-align: center;">
                                <h3>单位名称:<%#new Com.MyTemp.BLL.unit().GetTitle(this.unit_id)%>   (统计时间:<%=select_day%>)
                                </h3>

                            </div>
                        </tr>
                        <tr>
                            <th width="5%"></th>
                            <%for (int i = 1; i <= 24; i++)
                              { %>
                            <th><%=i.ToString()%></th>
                            <%} %>
                        </tr>
                </HeaderTemplate>
                <ItemTemplate>
                    <tr>
                        <td align="center"><%#GetEvaluateTypeID(Convert.ToInt32(Eval("evaluate")))%></td>
                        <td align="center"><%#Eval("totalize_1")%></td>
                        <td align="center"><%#Eval("totalize_2")%></td>
                        <td align="center"><%#Eval("totalize_3")%></td>
                        <td align="center"><%#Eval("totalize_4")%></td>
                        <td align="center"><%#Eval("totalize_5")%></td>
                        <td align="center"><%#Eval("totalize_6")%></td>
                        <td align="center"><%#Eval("totalize_7")%></td>
                        <td align="center"><%#Eval("totalize_8")%></td>
                        <td align="center"><%#Eval("totalize_9")%></td>
                        <td align="center"><%#Eval("totalize_10")%></td>
                        <td align="center"><%#Eval("totalize_11")%></td>
                        <td align="center"><%#Eval("totalize_12")%></td>
                        <td align="center"><%#Eval("totalize_13")%></td>
                        <td align="center"><%#Eval("totalize_14")%></td>
                        <td align="center"><%#Eval("totalize_15")%></td>
                        <td align="center"><%#Eval("totalize_16")%></td>
                        <td align="center"><%#Eval("totalize_17")%></td>
                        <td align="center"><%#Eval("totalize_18")%></td>
                        <td align="center"><%#Eval("totalize_19")%></td>
                        <td align="center"><%#Eval("totalize_20")%></td>
                        <td align="center"><%#Eval("totalize_21")%></td>
                        <td align="center"><%#Eval("totalize_22")%></td>
                        <td align="center"><%#Eval("totalize_23")%></td>
                        <td align="center"><%#Eval("totalize_24")%></td>
                    </tr>
                   
                </ItemTemplate>
                <FooterTemplate>                                         
                    <%#rptList.Items.Count == 0 ? "<tr><td align=\"center\" colspan='25'>暂无记录</td></tr>" : "<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>"%>
                    </thead>
                    </table>
                </FooterTemplate>
            </asp:Repeater>

 

<script type="text/javascript">

            var statisticalratio =100- <%=UIConfig.statisticalratio%>

            $(document).ready(function () {

                $("#tbid tr:last td:eq(0)").html("");

                //合计未合格列项和值
                var arr2 = ["c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "c9", "c10", "c11", "c12", "c13", "c14", "c15", "c16", "c17", "c18", "c19", "c20", "c21", "c22", "c23", "c24"];
                var arr = ["t1", "t2", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "t10", "t11", "t12", "t13", "t14", "t15", "t16", "t17", "t18", "t19", "t20", "t21", "t22", "t23", "t24"];

                for (var m = 0; m < arr2.length; m++) {
                    arr[m] = arr2[m] = 0;
                }
                $("#tbid tr:gt(4)").not(":last").each(function (i) {
                    var $obj = $(this).find("td");
                    for (var n = 1; n <= 24 ; n++) {
                        var tempVal0 = parseInt($obj.eq(n).html() == null ? 0 : $obj.eq(n).html());
                        arr2[n - 1] += tempVal0;
                    }
                   
                });
                for (var i = 1; i <= 24 ; i++) {
                     $("#tbid tr:last td:eq(" + i + ")").html(arr2[i - 1]);
                }

                //合计所有列项和值

                $("#tbid tr:gt(0)").not(":last").each(function (i) {

                    var $obj = $(this).find("td");
                    for (var j = 1; j <= 24 ; j++) {
                        var tempVal = parseInt($obj.eq(j).html() == null ? 0 : $obj.eq(j).html());
                        arr[j - 1] += tempVal;
                    }

                });
                for (var i = 1; i <= 24 ; i++) {
                    var n =$("#tbid tr:last td:eq(" + i + ")").html() / arr[i - 1] * 100;
                    var str =n <= statisticalratio ? "<span style=\"color:#000;\">正常</span>" : "<span style=\"color:red;\">差</span>";
                    $("#tbid tr:last td:eq(" + i + ")").html(str);
                }
            });

            function accDiv(arg1, arg2) {
                var t1 = 0, t2 = 0, r1, r2;
                try {
                    t1 = arg1.toString().split(".")[1].length
                } catch (e) {
                }
                try {
                    t2 = arg2.toString().split(".")[1].length
                } catch (e) {
                }
                with (Math) {
                    r1 = Number(arg1.toString().replace(".", ""))
                    r2 = Number(arg2.toString().replace(".", ""))
                    return (r1 / r2) * pow(10, t2 - t1);
                }
            }
        </script>

最终效果如下图:

 

posted @ 2013-12-17 10:48  qk523  阅读(351)  评论(0)    收藏  举报