解决方案 »

  1.   

    你可以在gridview的databind事件中
    获取数量、价格控件的事件 在textchange事件里面给合计赋值
      

  2.   

    gridview 计算
    http://topic.csdn.net/u/20090420/18/454ef5f7-565b-4887-931a-8d5a70082cba.html
      

  3.   

    谢谢大家,可我用的是ListView
      

  4.   

    用js,和GridView差不多的,
    事实上不用代码的话,一二句话也说不清楚,你把listView的前台代码贴一下吧!!
      

  5.   


                <InsertItemTemplate>
                    <tr style="">
                        <td>
                            <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" />
                            <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" />
                        </td>
                        <td>
                            &nbsp;</td>
                        <td>
                            <asp:TextBox ID="商品编码TextBox" runat="server" Text='<%# Bind("商品编码") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="商品名称TextBox" runat="server" Text='<%# Bind("商品名称") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="型号规格TextBox" runat="server" Text='<%# Bind("型号规格") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="单价TextBox" runat="server" Text='<%# Bind("单价") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="数量TextBox" runat="server" Text='<%# Bind("数量") %>' />
                        </td>
                        <td>
                            <asp:TextBox ID="合计TextBox" runat="server" Text='<%# Bind("合计") %>' />
                        </td>
                    </tr>
                </InsertItemTemplate>
      

  6.   

    做了简单的!
    页面三个TextBox,在第1,2个TextBox中失去焦点的时候,
    就会计算并把值赋给第3个TextBox,代码如下,供参考:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script type="text/javascript">
            function test(text1id, text2id, text3id) {
                var f1=parseFloat(document.getElementById(text1id).value);
                var f2=parseFloat(document.getElementById(text2id).value);
                document.getElementById(text3id).value = f1 * f2;
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server" onblur="test('TextBox1','TextBox2','TextBox3')"></asp:TextBox>
            <asp:TextBox ID="TextBox2" runat="server" onblur="test('TextBox1','TextBox2','TextBox3')"></asp:TextBox>
            <asp:TextBox ID="TextBox3" runat="server" ></asp:TextBox>
        </div>
        </form>
    </body>
    </html>
      

  7.   

    在你的ListView的ItemDataBound事件中,加入调用js函数的代码,如下:
        protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            if (e.Item.ItemType == ListViewItemType.InsertItem)
            {
                TextBox t1 = (TextBox)e.Item.FindControl("单价TextBox");
                TextBox t2 = (TextBox)e.Item.FindControl("数量TextBox");
                TextBox t3 = (TextBox)e.Item.FindControl("合计TextBox");
                t1.Attributes.Add("onblur", "test('" + t1.ClientID.ToString() + "','" + t2.ClientID.ToString() + "','" + t3.ClientID.ToString() + "')");
            }
        }
      

  8.   

    谢谢楼上的,在listview没有onblur这东西
      

  9.   

    8楼,漏了一句:紧接着t1.Attributes......后面:
    t2.Attributes.Add("onblur", "test('" + t1.ClientID.ToString() + "','" + t2.ClientID.ToString() + "','" + t3.ClientID.ToString() + "')");