GridView模版列代码! <asp:TemplateField HeaderText="数量">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("[T-jpcs1]") %>'></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:Label ID="a" runat="server" Text='<%# Bind("[T-jpcs1]") %>'  ></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
 <asp:TemplateField HeaderText="单价">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:TextBox ID="b" runat="server" onkeydown="checkFloat(event)" Width="100px"   ></asp:TextBox>
                                </ItemTemplate>
                            </asp:TemplateField>
  <asp:TemplateField HeaderText="总金额">
                                <EditItemTemplate>
                                    <asp:TextBox ID="TextBox10" runat="server"></asp:TextBox>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:TextBox ID="c" runat="server" Width="100px" onkeydown="checkFloat(event)" ></asp:TextBox>
                                </ItemTemplate>
                            </asp:TemplateField>用js
计算数量*单价=总金额
其中数量是通过数据源绑定的~单价直接在GridView上输入,输入单价后计算结果自动显示在总金额文本框内!
求js代码!

解决方案 »

  1.   


        <script type="text/javascript">
            function checkFloat(e) {
                return (e.keyCode >= 48 && e.keyCode <= 57) || e.keyCode == 8 || e.keyCode == 46 || (e.keyCode >= 37 && e.keyCode <= 40) || e.keyCode == 190 || e.keyCode == 110 ? true : false;
            }        function Cal(a, tb) {
                var b = parseFloat(tb.value);
                var par = tb.parentElement || tb.parentNode;
                var tbC = par.nextSibling.getElementsByTagName("input")[0];
                tbC.value = a * b;
            }
        </script>        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
                <Columns>
                    <asp:TemplateField HeaderText="数量">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("[T-jpcs1]") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="a" runat="server" Text='<%# Bind("[T-jpcs1]") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="单价">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox8" runat="server"></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <input type="text" onkeydown="return checkFloat(event)" onkeyup="Cal(<%# Eval("[T-jpcs1]") %>,this)" style="width:100px" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="总金额">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox10" runat="server"></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:TextBox ID="c" runat="server" Width="100px" onkeydown="return checkFloat(event)"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
      

  2.   

    <asp:TemplateField HeaderText="数量">
                                    <EditItemTemplate>
                                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("[T-jpcs1]") %>'></asp:TextBox>
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:Label ID="a" runat="server" Text='<%# Bind("[T-jpcs1]") %>'  ></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
     <asp:TemplateField HeaderText="单价">
                                    <EditItemTemplate>
                                        <asp:TextBox ID="TextBox8" onchange='getje()' runat="server"></asp:TextBox>
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:TextBox ID="b" runat="server" onkeydown="checkFloat(event)" Width="100px"   ></asp:TextBox>
                                    </ItemTemplate>
                                </asp:TemplateField>
      <asp:TemplateField HeaderText="总金额">
                                    <EditItemTemplate>
                                        <asp:TextBox ID="TextBox10" runat="server"></asp:TextBox>
                                    </EditItemTemplate>
                                    <ItemTemplate>
                                        <asp:TextBox ID="c" runat="server" Width="100px" onkeydown="checkFloat(event)" ></asp:TextBox>
                                    </ItemTemplate>
                                </asp:TemplateField>
    <script language='javascript'>
       function getje()
       {
           var djobj=window.event.srcElement;//获取事件源
            var trobj=djobj.parentNodes.parentNodes;
           var slobj=trobj.childNodes[0].childNodes[0];(第一个[0]数量列在表格中的位置)
            var jeobj=trobj.childNodes[2].childNodes[0];       jeobj.value=djobj.value*slobj.value;   }
    </script>
    我没时间试,大概就是这个意思