コード例 #1
0
        /// <summary>
        /// 쇼핑카트 내용 업데이트
        /// </summary>
        private void UpdateShoppingCartDatabase()
        {
            // 쇼핑카트 객체 생성
            ShoppingCartDB cart = new ShoppingCartDB();

            // 고유 키 값 반환
            string cartId = cart.GetShoppingCartId();

            // 그리드뷰의 아이템 개수만큼 반복
            for (int i = 0; i < ctlShoppingCartList.Rows.Count; i++)
            {
                // 수량 텍스트박스 값 가져오기
                TextBox quantityTxt = (TextBox)ctlShoppingCartList.Rows[i].FindControl("Quantity");

                // 삭제 체크박스 값 가져오기
                CheckBox remove = (CheckBox)ctlShoppingCartList.Rows[i].FindControl("Remove");

                int quantity;
                try
                {
                    // 수량 값 가져오기
                    quantity = Int32.Parse(quantityTxt.Text);

                    // 원래 바인딩될 때의 수량과 현재 텍스트박스의 수량이 틀리고, 삭제 체크박스가 선택되어 있다면...
                    if (quantity != (int)ctlShoppingCartList.DataKeys[i].Value || remove.Checked == true)
                    {
                        // 해당 상품코드값 가져오기
                        Label lblProductID = (Label)ctlShoppingCartList.Rows[i].FindControl("ProductID");

                        // 수량이 0이거나 삭제가 체크되었다면, 삭제 로직 실행
                        if (quantity == 0 || remove.Checked == true)
                        {
                            cart.RemoveItem(cartId, Int32.Parse(lblProductID.Text));
                        }
                        else // 그렇지 않으면 업데이트 로직 실행
                        {
                            cart.UpdateItem(cartId, Int32.Parse(lblProductID.Text), quantity);
                        }
                    }
                }
                catch
                {
                    lblErrorMessage.Text = "고객님께서 입력하신 자료가 잘못되었습니다.";
                }
            } // end for
        }