ASP.NET从DataTable中删除行

时间:2015-11-25 15:34:11

标签: asp.net datatable shopping-cart datarow

我在购物车上工作。我有一个包含我的产品的页面和“添加到购物车”按钮。当我单击按钮时,我使用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”的LinkBut​​ton。 这是我的方法:

    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();
}

就像我说我在这里有两个问题:

  1. 当我点击LinkBut​​ton时,页面顶部的菜单会自动相乘(菜单是使用ASP.NET菜单控件进行数据库驱动的)

  2. 当我点击“删除”时没有任何反应...... 我得到一个PostBack,没有任何反应。

  3. 我真的会帮助你!

0 个答案:

没有答案