在网格上添加总计不通过jquery工作

时间:2013-02-24 18:04:03

标签: c# jquery asp.net updatepanel

我不知道我在这里做错了什么,但我有一个网页,其中有一个usercontrol包含在更新面板中。此用户控件具有gridview,其中包含ItemTemplate中的文本框和页脚模板中的文本框。 footertemplate中的文本框应该从jquery中的函数获取计算值。下面是我的脚本来获取总数,但总计没有得到计算。请告诉我这里做错了什么。另外,如果我需要提供其他信息,请与我们联系。此脚本位于母版页中。我测试了确保jquery正在工作,通过在文档就绪之后放置警报它工作。任何帮助将不胜感激。

<script language="javascript">
    var totalQuantity = 0;
    $(document).ready(function() {
    //alert('This is test');
    $(document).on('blur', 'input[id^="MainContent_MainContent_ucProjectionSet3_upProjections"]', function() {
            alert('This is test');
            totalQuantity = 0;
            $('input[id^="MainContent_MainContent_ucProjectionSet3_gvProjections_txtCurrentTime_"]').each(function(index) {
                doTotalCal($(this).attr("id"));
            });
        });
        function doTotalCalc(_id) {
            var indexVal = _id.Replace("MainContent_MainContent_ucProjectionSet3_gvProjections_txtCurrentTime_", "");
            console.log(indexVal);
            var strTotalQuantity = $('input[id^="MainContent_MainContent_ucProjectionSet3_gvProjections_txtCurrentTime_' + indexVal + '"]').val().replace("$", "");
            totalQuantity += Number(strTotalQuantity);
        }
        $("#MainContent_MainContent_ucProjectionSet3_gvProjections_lblCurrentTimeTotal").html(totalQuantity);
    }); 
</script>

1 个答案:

答案 0 :(得分:0)

我可以在不使用更新面板的情况下完成此操作。我不需要为这个项目进行异步回发,因此删除它是使jquery工作的一个很好的选择。

<script type="text/javascript">
    $(document).ready(function() {
    $("[id*=gvProjections]input[type=text][id*=txtCurrentTime]").keyup(function(e) {
            GrossTotal();
        });
    });
    var gross;
    function GrossTotal() {
        gross = 0;
        $("[id*=gvProjections]input[type=text][id*=txtCurrentTime]").each(function(index, item) {

            gross = gross + Number($(item).val());
        });

        $("[id*=gvProjections][id*=lblCurrentTimeTotal]").text(gross);
    }
    function isNumberDecimalKey(evt) {
        var charCode = (evt.which) ? evt.which : event.keyCode;
        if (charCode == 46) //decimal
            return true
        else if (charCode > 57 || (charCode > 31 && charCode < 48))
            return false;
        else
            return true;
    }