<Columns>
<asp:BoundColumn DataField="书名" HeaderText="书名"></asp:BoundColumn>
<asp:BoundColumn DataField="价格" HeaderText="价格"></asp:BoundColumn>

<asp:TemplateColumn>
<HeaderTemplate>
数量
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox Runat="server" ID="shuliang" Text="请输入数量">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn> <asp:TemplateColumn>
<HeaderTemplate>
总价
</HeaderTemplate>
<ItemTemplate>
<asp:Label Runat="server" ID="zongjia" Text="我想在这里显示 数量乘以单价后的值">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn> </Columns>当触发了textchanged事件我想把textbox中的值传递到后台去
然后在后台把 这个值乘上单价 然后再返回到前台的label控件中后台的程序该怎么写 主要是textchanged事件怎么定义以及怎么引用textbox中的值
以及该怎么把结果返回到前台去

解决方案 »

  1.   

    <asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="false">
        <Columns> 
        <asp:BoundColumn DataField="书名" HeaderText="书名"> </asp:BoundColumn> 
        <asp:BoundColumn DataField="价格" HeaderText="价格"> </asp:BoundColumn> 
        <asp:TemplateColumn HeaderText="数量"> 
            <ItemTemplate> 
            <asp:TextBox Runat="server" ID="shuliang" Text="请输入数量" AutoPostBack="true" OnTextChanged="shuliang_TextChanged"> 
            </asp:TextBox> 
            </ItemTemplate> 
        </asp:TemplateColumn> 
        <asp:TemplateColumn HeaderText="总价"> 
            <ItemTemplate> 
            <asp:Label Runat="server" ID="zongjia" Text="我想在这里显示 数量乘以单价后的值"> 
            </asp:Label> 
            </ItemTemplate> 
        </asp:TemplateColumn> 
        </Columns>
    </asp:DataGrid>protected void shuliang_TextChanged(object sender, EventArgs e)
    {
        //找到文本框
        TextBox t = sender as TextBox;
        int qty = 0;    //得到数量,如果不合法则退出
        if (!int.TryParse(t.Text, out qty))
        {
            return;
        }    //找到当前项
        DataGridItem dgi = t.NamingContainer as DataGridItem;    //找到价格
        decimal price = decimal.Parse(dgi.Cells[1].Text);    //计算总价
        (dgi.FindControl("zongjia") as Label).Text = (qty * price).ToString();
    }
      

  2.   

    假如你是用dataset绑定的话
    int count=ds.Tables[0].Rows.count
    string a="";for(int i=0;i<count;i++)
    {
    TextBox shuliang=(TextBox )this.datagrid.Item[i].FindControl("shuliang")
    a=shuliang.Text;
    }
      

  3.   

    strStatus=((TextBox)GridView.Rows[i].FindControl("shuliang")).Text;
    其中i表示行标
      

  4.   

    放在隐藏域中传递,后台直接读出隐藏域的value