最近在做一个商城系统,里面的购物车我用了Repeater控件,其中里面一件商品对应一个商品数量的文本框和一个更新的图片按钮,我希望做到用户在文本框中输入需要购买的商品数量,然后点击更新按钮,将文本框中的数值更新到数据库对应的商品的购买数量。
我使用了在Repeater中去遍历,找到文本框的ID,然后更新。但是,假如购物车中有3个商品a,b,c 我在商品a的文本框中输入了数值,点击更新按钮,结果却把商品c的文本框中的数值更新到数据库中商品a的购买数量中。请教各位大侠该如何解决啊 ? 

解决方案 »

  1.   

    参考GridView一次性update所有Row:http://www.cnblogs.com/insus/articles/1400150.html
      

  2.   

    用GridView控件来做这个吧
      GridView对行的操作比Repeater简单
      

  3.   

    看来楼主入行很浅,帮你解决一下
    前台:
    <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                    <ItemTemplate>
                        <table>
                            <tr>
                                <td>
                                    <%#Eval("商品名称") %>
                                </td>
                                <td>
                                    <asp:TextBox ID="shuliang" runat="server"></asp:TextBox>
                                </td>
                                <td>
                                    <asp:ImageButton ID="ImageButton1" runat="server" CommandName="gengxin" CommandArgument='<%#Eval("商品ID") %>'/>
                                </td>
                            </tr>
                        </table>
                    </ItemTemplate>
                </asp:Repeater>
    后台:
    protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "gengxin")
            {
                TextBox shuliang=(TextBox)e.Item.FindControl("shuliang");
                if (shuliang.Text != "")
                {
                    string sql = "update 表 set 数量=" + shuliang.Text + " where id=" + e.CommandArgument.ToString();
                    //再执行修改操作
                }
            }
        }