我在购物车上工作。我有一个包含我的产品的页面和“添加到购物车”按钮。当我单击按钮时,我使用Session [“Cart”]将prodict Id作为DataTable传递。 在Cart.aspx上,我像这样回复会话:
if (Session["Cart"] != null)
{
dtCart = Session["Cart"] as DataTable;
foreach (DataRow dr in dtCart.Rows)
{
string SQL = "SELECT p.Id, p.Name, c.Name, p.Descr, p.Price, p.ImagePath FROM Categories AS c JOIN Products AS p ON (c.Id = p.CategoryId) WHERE p.Id=@ID;";
SqlCommand cmd = new SqlCommand(SQL, conn);
cmd.Parameters.AddWithValue("@ID", dr["ProductId"]);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(dt);
}
}
dlCart.DataSource = dt;
dlCart.DataBind();
我可以看到所有产品,当我想从购物车中删除产品时问题就出现了。 在DataList中,我有一个带有CommandName“delete”的LinkButton。 这是我的方法:
protected void dlCart_ItemCommand(object source, DataListCommandEventArgs e)
{
string ProductID = ((Label)e.Item.FindControl("lblID")).Text;
if (e.CommandName == "delete")
{
for(int i = dtCart.Rows.Count-1; i>=0; i--)
{
DataRow dr = dtCart.Rows[i];
if(dr["ProductId"].ToString() == ProductID)
{
dtCart.Rows.Remove(dr);
}
}
}
dlCart.EditItemIndex = -1;
BindDlCart();
}
就像我说我在这里有两个问题:
当我点击LinkButton时,页面顶部的菜单会自动相乘(菜单是使用ASP.NET菜单控件进行数据库驱动的)
当我点击“删除”时没有任何反应...... 我得到一个PostBack,没有任何反应。
我真的会帮助你!