0

ループを作成して、ショッピング カートから小計を計算しようとするときに、カートに他のアイテムがあるかどうかを確認し続けるようにする必要があります。この時点でマイカートはリストボックスです。アクセス テーブルからデータを取得するために、10 進数を単価として既に宣言しています。また、送料 (アイテムごとに 2 ドル)、税金 (@ 7%) を追加し、最終的に合計を集計する必要があります。私はこれで完全な初心者であり、どんな助けでも大歓迎です。Visual Studio 2010 で c# と asp.net を組み合わせて使用​​しています。カート ページの C# コード

public partial class _Default : System.Web.UI.Page
{
    private CartItemList cart;

    protected void Page_Load(object sender, EventArgs e)
    {
        cart = CartItemList.GetCart();
        if (!IsPostBack)
            this.DisplayCart();
    }

    private void DisplayCart()
    {
        lstBox.Items.Clear();
        CartItem item;
        for (int i = 0; i < cart.Count; i++)
        {
            item = cart[i];
            lstBox.Items.Add(item.Display());
        }
    }

    protected void clrBtn_Click(object sender, EventArgs e)
    {
        if (cart.Count > 0)
        {
            cart.Clear();
            lstBox.Items.Clear();
        }
    }

    protected void  rmvBtn_Click(object sender, EventArgs e)
    {
        if (cart.Count > 0)
        {
            if (lstBox.SelectedIndex > -1)
            {
                cart.RemoveAt(lstBox.SelectedIndex);
                this.DisplayCart();
            }
            else
            {
                lblMessage.Text = "Please select the item you want to remove.";
            }
        }
    }

    protected void checkoutBtn_Click(object sender, EventArgs e)
    {

    }
}

C# の注文ページからのコード

public partial class _Default : System.Web.UI.Page
{
    private Product selectedProduct;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            ddlproducts.DataBind();

        selectedProduct = this.GetSelectedProduct();
        lblName.Text = selectedProduct.Name;
        lblShortDescription.Text = selectedProduct.ShortDescription;
        lblLongDescription.Text = selectedProduct.LongDescription;
        lblUnitPrice.Text = selectedProduct.UnitPrice.ToString("c");
    }

    private Product GetSelectedProduct()
    {
        DataView BooksTable = (DataView)
        AccessDataSource2.Select(DataSourceSelectArguments.Empty);
        BooksTable.RowFilter =
            "ProductID = '" + ddlproducts.SelectedValue + "'";
        DataRowView row = (DataRowView)BooksTable[0];

        Product p = new Product();
        p.ProductID = row["ProductID"].ToString();
        p.Name = row["Name"].ToString();
        p.ShortDescription = row["ShortDescription"].ToString();
        p.LongDescription = row["LongDescription"].ToString();
        p.UnitPrice = (decimal)row["UnitPrice"];
        //p.ImageFile = row["Image File"].ToString();
        return p;
    }

    protected void addBtn_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            CartItemList cart = CartItemList.GetCart();
            CartItem cartItem = cart[selectedProduct.ProductID];
            if (cartItem == null)
            {
                cart.AddItem(selectedProduct, 1);
            }
            else
            {
                cartItem.AddQuantity(1);
            }
            Response.Redirect("Cart.aspx");
        }
    }
}

c# の caritemlist コード (このコードはすべて私の本からコピーしました。プログラミングの方法がわかりません。)

public class CartItemList
{
    private List<CartItem> cartItems;

    public CartItemList()
    {
        cartItems = new List<CartItem>();
    }

    public int Count {
        get { return cartItems.Count; }
    }

    public CartItem this[int index]
    {
        get { return cartItems[index]; }
        set { cartItems[index] = value; }
    }

    public CartItem this[string id]
    {
        get {
            foreach (CartItem c in cartItems)
                if (c.Product.ProductID == id) return c;
            return null;
        }
    }

    public static CartItemList GetCart()
    {
        CartItemList cart = (CartItemList) HttpContext.Current.Session["Cart"];
        if (cart == null)
            HttpContext.Current.Session["Cart"] = new CartItemList();
        return (CartItemList) HttpContext.Current.Session["Cart"];
    }

    public void AddItem(Product product, int quantity)
    {
        CartItem c = new CartItem(product, quantity);
        cartItems.Add(c);
    }

    public void RemoveAt(int index)
    {
        cartItems.RemoveAt(index);
    }

    public void Clear()
    {
        cartItems.Clear();
    }
}
4

1 に答える 1

0

私の理解では、カートからすべてのアイテムを 1 つずつ取得し、カートの合計金額を返したいと考えています。これは、あなたの望むことですか -

double total = 0;
foreach(CartItem cartItem in CartItemList.GetCart())
{
   total+= cartItem.Price * cartItem.Quantity
}
于 2012-10-27T14:45:16.280 に答える