计算嵌套网格内的文本框总和

时间:2012-05-09 16:17:02

标签: javascript jquery asp.net .net client-side

我在GridView中有两个嵌套网格。两个嵌套网格都有不同数量的控件(TextBoxes)。我想计算嵌套网格文本框的总和,并放入相关行父网格的相关文本框中。

我想用jQuery做到这一点。

以下是网格的来源:

<table cellspacing="0" rules="all" border="1" id="gvSPActivities" style="width:100%;border-collapse:collapse;">
    <tr class="donorh1" align="left" style="height:35px;">
        <th scope="col" style="width:40px;">#</th><th scope="col">Activity</th><th scope="col">Unit</th><th scope="col">Target</th><th scope="col">Benefic</th><th scope="col">Cost</th>
    </tr><tr class="gridrow2">
        <td>
                1
            </td><td>a</td><td>u1</td><td>
                <input name="gvSPActivities$ctl02$txtTarget" type="text" value="100" id="gvSPActivities_txtTarget_0" class="numeric" style="width:150px;" />
            </td><td>
                <a class="showDetails" href="javascript:switchViews('div1', 'one');">
                Show Details</a>
                <input name="gvSPActivities$ctl02$txtTotalBenefic" type="text" id="gvSPActivities_txtTotalBenefic_0" />
                <div class="details" id="div1" style="display: none;
                left: 30px;">
                <div>
            <table cellspacing="0" rules="all" border="1" id="gvSPActivities_gvBenefic_0" style="border-collapse:collapse;">
                <tr>
                    <th scope="col">Male</th><th scope="col">Female</th><th scope="col">Children</th><th scope="col">Family</th>
                </tr><tr>
                    <td>
                        <input name="gvSPActivities$ctl02$gvBenefic$ctl02$txtMaleBenefic" type="text" id="gvSPActivities_gvBenefic_0_txtMaleBenefic_0" class="numeric" style="width:100px;" />
                        </td><td>
                        <input name="gvSPActivities$ctl02$gvBenefic$ctl02$txtFemaleBenefic" type="text" id="gvSPActivities_gvBenefic_0_txtFemaleBenefic_0" class="numeric" style="width:100px;" />
                        </td><td>
                        <input name="gvSPActivities$ctl02$gvBenefic$ctl02$txtChildren" type="text" id="gvSPActivities_gvBenefic_0_txtChildren_0" class="numeric" style="width:100px;" />
                        </td><td>
                        <input name="gvSPActivities$ctl02$gvBenefic$ctl02$txtFamilyBenefic" type="text" id="gvSPActivities_gvBenefic_0_txtFamilyBenefic_0" class="numeric" style="width:100px;" />
                        </td>
                </tr>
            </table>
        </div>
                </div>
            </td><td>
                <a class="showDetails" href="javascript:switchViews('div1', 'one');">
                Show Details</a>
                <input name="gvSPActivities$ctl02$txtTotalCost" type="text" id="gvSPActivities_txtTotalCost_0" />
                <div class="details" id="div1" style="display: none;
                left: 30px;">
                <div>
            <table cellspacing="0" rules="all" border="1" id="gvSPActivities_gvCost_0" style="border-collapse:collapse;">
                <tr>
                    <th scope="col">Main Cost</th><th scope="col">Other Cost</th>
                </tr><tr>
                    <td>
                        <input name="gvSPActivities$ctl02$gvCost$ctl02$txtMainCost" type="text" id="gvSPActivities_gvCost_0_txtMainCost_0" class="numeric" style="width:100px;" />
                        </td><td>
                        <input name="gvSPActivities$ctl02$gvCost$ctl02$txtOthercost" type="text" id="gvSPActivities_gvCost_0_txtOthercost_0" class="numeric" style="width:100px;" />
                        </td>
                </tr>
            </table>
        </div>
                </div>
            </td>
    </tr>
</table>

感谢。

1 个答案:

答案 0 :(得分:0)

var total = 0;

$("input[id^='gvSPActivities']", "#gvSPActivities").each(function() {
    total = total+this.value;
});

$(someInputElement).val(total);