2013-02-24 45 views
0

不知道我在做什麼錯在這裏,但我有一個網頁,有一個usercontrol包裹在更新面板。這個用戶控件有一個GridView,在ItemTemplate中有一個文本框,在頁腳模板中有一個文本框。 footertemplate中的文本框應該從jquery中的函數中獲取計算值。下面是我的腳本來獲得總數,但總數沒有得到計算。請告知我在這裏做錯了什麼。另外,讓我知道是否需要提供更多信息。該腳本位於母版頁中。我測試了一下,確保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> 

回答

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; 
    }