在gridview中有多列,其中有2列中有TextBox控件,用作输入数据,还有一列是合计列,gridview的行数不确定!,数据动态从数据库中读出.
现在想要做到这样的效果,当在某行的某个TextBox列输入数据后,能自动把该行中的两个TextBox中的数值加起来,写入到该行的合计列中去,合计列上放的是label控件.
现在想要做到这样的效果,当在某行的某个TextBox列输入数据后,能自动把该行中的两个TextBox中的数值加起来,写入到该行的合计列中去,合计列上放的是label控件.
name=“lab”<asp:TextBox ID="txtC_1" runat="server" name="txt1" onkeyup="SetV();" />
<asp:TextBox ID="txtC_2" runat="server" name="txt2" onkeyup="SetV();" />
<asp:Label ID="txtSum" runat="server" name="lab" />
function SetV()
{
var _labs=document.getElementByName("lab");
var _txt1s=document.getElementByName("txt1");
var _txt2s=document.getElementByName("txt2");
var _num=document.getElementByName("lab").length;
for(i=0; i<_num; i++)
{
_labs[i].InnerHTML=parseInt(txt1s[i].value)+parseInt(txt2s[i].value);
}
}window.onload=function(){
SetV();
}
<Columns>
<asp:TemplateField HeaderText="数量1">
<ItemTemplate><asp:TextBox runat="server" ID="TextBox1" onchange="calcTotal(this)" /></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="数量2">
<ItemTemplate><asp:TextBox runat="server" ID="TextBox2" onchange="calcTotal(this)" /></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="合计">
<ItemTemplate><asp:Label ID="Label1" runat="server"></asp:Label></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView><script>
function calcTotal(source) {
var row_id = source.id.substr(0, source.id.lastIndexOf('_') + 1);
var textbox1 = document.getElementById(row_id + 'TextBox1');
var textbox2 = document.getElementById(row_id + 'TextBox2');
var label = document.getElementById(row_id + 'Label1');
label.innerHTML = Number(textbox1.value) + Number(textbox2.value);
}
</script>
多谢楼上的大虾