C# 如何在ASP.NET中添加foreach中带有db数据的动态按钮?
我正在为学校制作一个网站。我正在用db产品开一家商店。我在foreach循环中为我的所有产品制作了一个按钮。对于每个按钮,我需要将数据保存在该特定产品的char中。我做错了什么。请帮帮我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();
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=“找不到食物”}); } } }
最好的方法是创建一个
数据网格。您可以看到一个示例。错误是什么?错误在哪里?你们试图做什么来解决这个问题?我做了一个按钮来盯着我的产品,但按钮不起作用