在網路上找到了下列方式,這樣就可將datagrid 中所輸入的值合計在畫面上的一個欄位中了

 <script   type ="text/javascript" language="javascript">
        function Sum() {
            var total = 0;
            var inputs = document.getElementById('dg').getElementsByTagName('input');
            for (i = 0; i < inputs.length; i++) {
                if (inputs[i].type == 'text') {
                    var value = parseFloat (inputs[i].value);
                    if (!isNaN(value))
                        total += parseFloat(inputs[i].value);
                }
            }
            document.getElementById('txtTotal').value = total.toFixed(2);
        }
  </script>   

 

說明"inputs",這個是不能改的,這個會去找datagrid中所有輸入的控制項,再於迴圈中判斷期類型是否為text
因為我的合計要處理小數,所以我用parseFloat,如果是要合計成整數就用parseInt

最後的 total.toFixed(2);,指的是我要將值取到小數第二位即可

 

然後在你datagrid中的要被運算的那個textbox中加入 onkeyup="Sum();",這樣就可以不用postback,就可以合計值在畫面上了

範例如下

<WebControl:TextBox ID="txtPay" runat="server" Height="19px" MappingControlID="" MaxLength="10" onkeyup="Sum();" Text='<%# DataBinder.Eval(Container, "DataItem.pay") %>'  ValidateRequest="True" Width="82px"></WebControl:TextBox>

丫德 發表在 痞客邦 PIXNET 留言(0) 人氣()