在網路上找到了下列方式,這樣就可將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>
留言列表