自动计算啊?啥意思?就是你如入完毕以后,也不按回车,也不按任何按钮,直接出结果?那只能javascript了吧?在text1,text2上面都加入onblur事情,然后自动计算text3了。

解决方案 »

  1.   

    使用JS只能把值赋给客服端控件,服务器端的控件值还是空的,只能靠回发吧
    或者提交后在后台代码用Request获取客户控件的值,再赋值给服务器控件
      

  2.   

    看看这个例子 <asp:TemplateField HeaderText="用量(Yid)" SortExpression="yid">                             <ItemTemplate> 
                                    <asp:TextBox ID="TextBox4" onkeydown="checkFloat(event)" runat="server" Height="22px" 
                                        Text=' <%# Bind("yid") %>' Width="50px" onkeyup="buliao(this)"> </asp:TextBox>                    
                                </ItemTemplate> 
                            </asp:TemplateField> 
                            <asp:TemplateField HeaderText="单价(price)" SortExpression="price">                             <ItemTemplate> 
                                     <asp:TextBox ID="TextBox5" onkeydown="checkFloat(event)" runat="server" Height="22px" 
                                        Text=' <%# Bind("price") %>' Width="50px" onkeyup="buliao(this)"> </asp:TextBox>                   
                                </ItemTemplate> 
                            </asp:TemplateField> 
                            <asp:TemplateField HeaderText="总价(TOTAL)" SortExpression="TOTALPRICE"> 
                                <ItemTemplate> 
                                    <asp:TextBox ID="TextBox8" runat="server" Height="22px" 
                                        Text=' <%# Bind("TOTALPRICE") %>' Width="50px"> </asp:TextBox> 
                                </ItemTemplate>
                           </asp:TemplateField> 
      

  3.   


     <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("TextBox4")>0)
         {
            text4=inputs[i];
         }
        if(inputs[i].id.indexOf("TextBox5")>0)
         {
            text5=inputs[i];
         }
        if(inputs[i].id.indexOf("TextBox8")>0)
         {
            text6=inputs[i];
         }
      }
      if(text4!=null && text5!=null && text6!=null)
      {
          text6.value=parseFloat(text4.value)*parseFloat(text5.value);
      }
    }    </script>
      

  4.   

    参考这个:http://topic.csdn.net/u/20081203/15/ed4a0c57-2c9e-4b29-a7b9-106554270edb.html
      

  5.   

    对了,GRIDVIEW的控件在服务器端是一个,加载到客户端就是很多个了,要一个一个地计算
      

  6.   

    为GRIDVIEW数据源的表中增加一列,专门用来计算。一但前面的列被修改,就重新计算这一行的值。