在gridview中有多列,其中有2列中有TextBox控件,用作输入数据,还有一列是合计列,gridview的行数不确定!,数据动态从数据库中读出.
现在想要做到这样的效果,当在某行的某个TextBox列输入数据后,能自动把该行中的两个TextBox中的数值加起来,写入到该行的合计列中去,合计列上放的是label控件.

解决方案 »

  1.   

    获取当前单元格的textbox值。
      

  2.   

    这是个很简单的问题·可以用js来完成,页面无刷新·首先绑定上两个TextBox,假设 第一个TextBox 的name=“txt1”,第二个name=“txt2”,label 的name设置为
    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();
    }
      

  3.   

    <asp:GridView runat="server" ID="GridView1">
    <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>
      

  4.   

    非常有用,找了N天的一个JS
    多谢楼上的大虾