自定义GridView如
<asp:TemplateField HeaderText="A1">
  <ItemTemplate>
    <asp:Label ID="labA1" runat="server" Text='<%# Eval("A1") %>'></asp:Label>
  </ItemTemplate>
  <EditItemTemplate>
    <asp:TextBox ID="A1" runat="server" Text='<%# Eval("A1") %>'></asp:TextBox>
  </EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A2">
  <ItemTemplate>
    <asp:Label ID="labA2" runat="server" Text='<%# Eval("A2") %>'></asp:Label>
  </ItemTemplate>
  <EditItemTemplate>
    <asp:TextBox ID="A2" runat="server" Text='<%# Eval("A2") %>'></asp:TextBox>
  </EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="A3">
  <ItemTemplate>
    <asp:Label ID="labA3" runat="server" Text='<%# Eval("A3") %>'></asp:Label>
  </ItemTemplate>
  <EditItemTemplate>
    <asp:TextBox ID="A3" runat="server" Text='<%# Eval("A3") %>'></asp:TextBox>
  </EditItemTemplate>
</asp:TemplateField>当用户处于编辑,增加状态的时候,如果动态实时的获得A3=A1+A2的值
即当用户输入A1的时候,A3立刻得到上面的表达式值

解决方案 »

  1.   

    <asp:TemplateField HeaderText="A1"> 
      <ItemTemplate> 
        <asp:Label ID="labA1" runat="server" Text=' <%# Eval("A1") %>'> </asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
        <asp:TextBox ID="A1" runat="server" Text=' <%# Eval("A1") %>'> </asp:TextBox> 
      </EditItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="A2"> 
      <ItemTemplate> 
        <asp:Label ID="labA2" runat="server" Text=' <%# Eval("A2") %>'> </asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
        <asp:TextBox ID="A2" runat="server" onkeydown="checkFloat(event)" Text=' <%# Eval("A2") %>' onkeyup="buliao(this)"> </asp:TextBox> 
      </EditItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="A3"> 
      <ItemTemplate> 
        <asp:Label ID="labA3" runat="server" Text=' <%# Eval("A3") %>'> </asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
        <asp:TextBox ID="A3" runat="server" Text=' <%# Eval("A3") %>'> </asp:TextBox> 
      </EditItemTemplate> 
    </asp:TemplateField> <script language="javascript">
        function checkFloat(e){
        var result=true;
        result = (event.keyCode == 9 ||event.keyCode == 45 ||
        event.keyCode == 46 ||
        event.keyCode == 37 ||
        event.keyCode == 39 ||
        event.keyCode == 8 ||
        event.keyCode == 110 ||
        event.keyCode == 190 ||
        (event.keyCode>=96 && event.keyCode<=105) ||
        (event.keyCode>=48 && event.keyCode<=57));
        event.returnValue=result;
    }function buliao(obj)
    {
       
       var TRCurrent=obj.parentNode.parentNode;
       var inputs=TRCurrent.getElementsByTagName("input"); 
       var  text6=null;   
       var  text5=null;  
       var  text4=null;    for(var i=0;i<inputs.length;i++)
       {
         if(inputs[i].id.indexOf("A1")>0)
         {
            text4=inputs[i];
         }
        if(inputs[i].id.indexOf("A2")>0)
         {
            text5=inputs[i];
         }
        if(inputs[i].id.indexOf("A3")>0)
         {
            text6=inputs[i];
         }
      }
      if(text4!=null && text5!=null && text6!=null)
      {
          text6.value=parseFloat(text4.value)+parseFloat(text5.value);
      }
    }    </script>
      

  2.   

    <asp:TemplateField HeaderText="A1"> 
      <ItemTemplate> 
        <asp:Label ID="labA1" runat="server" Text=' <%# Eval("A1") %>'> </asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
        <asp:TextBox ID="A1" runat="server"  onkeydown="checkFloat(event)" onkeyup="buliao(this)" Text=' <%# Eval("A1") %>'> </asp:TextBox> 
      </EditItemTemplate> </asp:TemplateField> 
    <asp:TemplateField HeaderText="A2"> 
      <ItemTemplate> 
        <asp:Label ID="labA2" runat="server" Text=' <%# Eval("A2") %>'> </asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
        <asp:TextBox ID="A2" runat="server"  Text=' <%# Eval("A2") %>' > </asp:TextBox> 
      </EditItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="A3"> 
      <ItemTemplate> 
        <asp:Label ID="labA3" runat="server" Text=' <%# Eval("A3") %>'> </asp:Label> 
      </ItemTemplate> 
      <EditItemTemplate> 
        <asp:TextBox ID="A3" runat="server" Text=' <%# Eval("A3") %>'> </asp:TextBox> 
      </EditItemTemplate> 
    </asp:TemplateField> 刚才事件加在A2上了,现在改过了
      

  3.   

    判断是不是数字好像是isNaN(),好久没写js了