C# 如何在ASP.NET中添加foreach中带有db数据的动态按钮?

C# 如何在ASP.NET中添加foreach中带有db数据的动态按钮?,c#,asp.net,C#,Asp.net,我正在为学校制作一个网站。我正在用db产品开一家商店。我在foreach循环中为我的所有产品制作了一个按钮。对于每个按钮,我需要将数据保存在该特定产品的char中。我做错了什么。请帮帮我 public partial class OrderFood : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { FillPage();

我正在为学校制作一个网站。我正在用db产品开一家商店。我在foreach循环中为我的所有产品制作了一个按钮。对于每个按钮,我需要将数据保存在该特定产品的char中。我做错了什么。请帮帮我

public partial class OrderFood : System.Web.UI.Page
{     
    protected void Page_Load(object sender, EventArgs e)
    {
        FillPage();            
    }

    public void FillPage()
    {
        ProductModel productModel = new ProductModel();
        List<Product> products = productModel.GetAllProducts();
        if (products != null)
        {
            foreach (Product product in products)
            {

                Panel OFood = new Panel();
                Image img = new Image();
                Label lblName = new Label();
                Label lblDetail = new Label();
                Label lblPrice = new Label();
                Button btn = new Button ();
                DropDownList ddamount = new DropDownList();


                //amount
                int[] amount = Enumerable.Range(1, 20).ToArray();
                ddamount.DataSource = amount;
                ddamount.AppendDataBoundItems = true;
                ddamount.DataBind();
                btn.ID = "s";
                img.ImageUrl = "~/AdminManagement/FoodImages/" + product.Image;
                img.CssClass = "img-rounded3";
                ddamount.CssClass = "form-control";
                lblName.Text = product.Name;
                btn.CssClass = "btn-success btn";
                btn.Text = "comanda mancare";
                lblDetail.Text = product.Desctiption;

                lblPrice.Text = "Lei:  " + product.Price;
                OFood.Controls.Add(new Literal { Text = "<div class='col-xs-6 col-sm-3'>" });

                OFood.Controls.Add(img);
                OFood.Controls.Add(new Literal { Text = "<br />" });
                OFood.Controls.Add(new Literal { Text = "<h3>  " });
                OFood.Controls.Add(lblName);
                OFood.Controls.Add(new Literal { Text = "</h3>" });
                OFood.Controls.Add(new Literal { Text = "<br />" });
                OFood.Controls.Add(lblDetail);
                OFood.Controls.Add(new Literal { Text = "<br />" });
                OFood.Controls.Add(new Literal { Text = "<h4>  " });
                OFood.Controls.Add(lblPrice);
                OFood.Controls.Add(new Literal { Text = "</h4>  " });
                OFood.Controls.Add(ddamount);
                OFood.Controls.Add(btn);
                OFood.Controls.Add(new Literal { Text = "</div>" });

                // add dinamyc panlels to static parent panel

                OFoodP.Controls.Add(OFood);

                btn.Click +=delegate
                {
                    if (!string.IsNullOrWhiteSpace(Request.QueryString["id"]))
                    {

                        string clientId = "-1";
                        int id = Convert.ToInt32(Request.QueryString["id"]);
                        int AMount = Convert.ToInt32(ddamount.SelectedValue);

                        Cart cart = new Cart()
                        {
                            Amount = AMount,
                            ClientID = clientId,
                            DatePurchased = DateTime.Now,
                            IsInCart = true,
                            ProductID = id,
                        };

                        CartModel model = new CartModel();
                        lblResult.Text = model.InsetCart(cart);
                    }
               };
           }
        }
        else
        {
            //no products found
            OFoodP.Controls.Add(new Literal { Text = "no food found" });
        }
    }       
 }
公共部分类OrderFood:System.Web.UI.Page { 受保护的无效页面加载(对象发送方、事件参数e) { FillPage(); } 公共空白填充页() { ProductModel ProductModel=新的ProductModel(); List products=productModel.GetAllProducts(); if(产品!=null) { foreach(产品中的产品) { 旧面板=新面板(); 图像img=新图像(); Label lblName=新标签(); Label lblDetail=新标签(); Label lblPrice=新标签(); 按钮btn=新按钮(); DropDownList ddamount=新的DropDownList(); //数量 int[]amount=Enumerable.Range(1,20).ToArray(); ddamount.DataSource=金额; ddamount.AppendDataBoundItems=true; ddamount.DataBind(); btn.ID=“s”; img.ImageUrl=“~/AdminManagement/FoodImages/”+product.Image; img.CssClass=“img-rounded3”; ddamount.CssClass=“表单控制”; lblName.Text=product.Name; btn.CssClass=“btn成功btn”; btn.Text=“comanda mancare”; lblDetail.Text=产品描述; lblPrice.Text=“Lei:+产品.价格; Add(新文本{Text=”“}); OFOD.Controls.Add(img); 添加(新文本{Text=“
”}); Add(新文本{Text=”“}); of ood.Controls.Add(lblName); Add(新文本{Text=”“}); 添加(新文本{Text=“
”}); 添加(lblDetail); 添加(新文本{Text=“
”}); Add(新文本{Text=”“}); 添加(lblPrice); Add(新文本{Text=”“}); 添加(ddamount); OFOD.Controls.Add(btn); Add(新文本{Text=”“}); //向静态父面板添加双戊碳面板 OFoodP.Controls.Add(OFood); 点击+=委托 { if(!string.IsNullOrWhiteSpace(Request.QueryString[“id”])) { 字符串clientId=“-1”; int id=Convert.ToInt32(Request.QueryString[“id”]); int AMount=Convert.ToInt32(ddamount.SelectedValue); 购物车=新购物车() { 金额=金额, ClientID=ClientID, DatePurchased=DateTime。现在, IsInCart=true, ProductID=id, }; CartModel模型=新的CartModel(); lblResult.Text=model.insertcart(购物车); } }; } } 其他的 { //没有发现任何产品 Add(new Literal{Text=“找不到食物”}); } } }
最好的方法是创建一个
数据网格。您可以看到一个示例。

错误是什么?错误在哪里?你们试图做什么来解决这个问题?我做了一个按钮来盯着我的产品,但按钮不起作用