Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 23 kết quả

Đề tài: Trang giỏ hàng tự thêm số lượng khi refesh, sửa như thế nào?

  1. #1
    Ngày gia nhập
    01 2011
    Bài viết
    126

    Mặc định Trang giỏ hàng tự thêm số lượng khi refesh, sửa như thế nào?

    Khi mình refesh lại trang thì cột số lượng tự đông tăng.
    Bạn nào thấy sai chổ nào sửa dùm mình với.

    Test tại đây: http://dochoitreem.somee.com/
    acc: test
    pass: 123

    Code:
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (Session["TenDN"] == null)
                    Response.Redirect("~/Dangnhap.aspx");
                if (Request.QueryString["MADC"] != null)
                {
                    int MADC = int.Parse(Request.QueryString["MADC"]);
                    DataTable dt = XLDL.Docbang("Select TENDC,DONGIA From DOCHOI where MADC= '" + MADC + "'");
                    String TENDC = dt.Rows[0][0].ToString();
                    int DONGIA = int.Parse(dt.Rows[0][1].ToString());
                    int SOLUONG = 1;
                    //lbTenDN.Text = Session["TenDN"].ToString();
                    ThemVaoGioHang(MADC, TENDC, DONGIA, SOLUONG);
                }
                if (Session["Giohang"] != null)
                {
                    DataTable dt = new DataTable();
                    dt = (DataTable)Session["GioHang"];
                    if (dt.Rows.Count == 0)
                    {
                        Response.Redirect("~/Default.aspx");
                    }
                    else
                    {
                        System.Decimal tongThanhTien = 0;
                        foreach (DataRow r in dt.Rows)
                        {
                            r["THANHTIEN"] = Convert.ToInt32(r["SOLUONG"]) * Convert.ToDecimal(r["DONGIA"]);
                            tongThanhTien += Convert.ToDecimal(r["THANHTIEN"]);
                            lbTongThanhTien.Text = tongThanhTien.ToString();
                        }
                        GridView1.DataSource = dt;
                        GridView1.DataBind();
                    }
                }
            }
        }
        protected void bTieptuc_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Default.aspx");
        }
        protected void bXoagiohang_Click(object sender, EventArgs e)
        {
            Session["Giohang"] = null;
            Response.Redirect("~/Default.aspx");
        }
        protected void bCapnhat_Click(object sender, EventArgs e)
        {
            DataTable dt = (DataTable)Session["GioHang"];
            foreach (GridViewRow r in GridView1.Rows)
            {
                foreach (DataRow dr in dt.Rows)
                {
                    if (Convert.ToString(GridView1.DataKeys[r.DataItemIndex].Value) == dr["MADC"].ToString())
                    {
                        TextBox t = (TextBox)r.Cells[2].FindControl("txtSoluong");
    
                        if (Convert.ToInt32(t.Text) <= 0)
                            dt.Rows.Remove(dr);
                        else
                            dr["SOLUONG"] = t.Text;
                        break;
                    }
                }
            }
            Session["Giohang"] = dt;
            Response.Redirect("~/GioHang.aspx");
        }
        protected void bThanhtoan_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Thanhtoan.aspx");
        }
        public void ThemVaoGioHang(int MADC, string TENDC, int DONGIA, int SOLUONG)
        {
            DataTable datatable;
            if (Session["GioHang"] == null)
            {
                datatable = new DataTable();
                datatable.Columns.Add("MADC");
                datatable.Columns.Add("TENDC");
                datatable.Columns.Add("DONGIA");
                datatable.Columns.Add("SOLUONG");
                datatable.Columns.Add("THANHTIEN");
            }
            else
                datatable = (DataTable)Session["GioHang"];
            int dong = SPdacotronggiohang(MADC, datatable);
            if (dong != -1)
            {
                datatable.Rows[dong]["SOLUONG"] = Convert.ToInt32(datatable.Rows[dong]["SOLUONG"]) + SOLUONG;
            }
            else
            {
                DataRow dr = datatable.NewRow();
                dr["MADC"] = MADC;
                dr["TENDC"] = TENDC;
                dr["DONGIA"] = DONGIA;
                dr["SOLUONG"] = SOLUONG;
                dr["THANHTIEN"] = DONGIA * SOLUONG;
                datatable.Rows.Add(dr);
            }
            Session["GioHang"] = datatable;
        }
        public static int SPdacotronggiohang(int MADC, DataTable datatable)
        {
            int dong = -1;
            for (int i = 0; i < datatable.Rows.Count; i++)
            {
                if (int.Parse(datatable.Rows[i]["MADC"].ToString()) == MADC)
                {
                    dong = i;
                    break;
                }
            }
            return dong;
        }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Nutxoa")
            {
                int chiso = int.Parse(e.CommandArgument.ToString());
                try
                {
                    DataTable dt = (DataTable)Session["GioHang"];
                    dt.Rows.RemoveAt(chiso);
                    Session["Giohang"] = dt;
                    Response.Redirect("~/Giohang.aspx");
                }
                catch
                {
                    Response.Redirect("~/Giohang.aspx");
                }
            }
        }

  2. #2
    Ngày gia nhập
    04 2010
    Nơi ở
    Trên hành tinh thứ ba tính từ Mặt trời
    Bài viết
    202

    Bạn sử dụng QueryString trên URL để mà đưa sản phẩm vào Giỏ hàng cho nên mỗi lần bạn Refresh lại thì nó vẫn là cái URL đó, cho nên nó tiếp tục chọn ra hàng theo mã số đó và gọi ThemVaoGioHang => Số lượng hàng trong giỏ tăng lên 1.

    Bạn nên xử lý việc thêm vào giỏ hàng ngay trong trang hiển thị chi tiết sản phẩm để tránh việc Refresh lại trang thì tăng lên 1 như thế này
    Microsoft Student Partner
    University of Information Technology - VNUHCM
    Visit my blog: My power is my mind

  3. #3
    Ngày gia nhập
    06 2010
    Bài viết
    490

    code của bạn chạy ổn đâu có gì đâu! mỗi lần Refresh nó +1 là đúng rồi. à mà cái calender sao ko cho nó ẩn với người dùng mà để vậy ko đẹp cho mấy,
    Hãy bình tĩnh giải quyết mọi vấn đề.

  4. #4
    Ngày gia nhập
    01 2011
    Bài viết
    126

    Mặc định Ẩn Calendar ???

    khắc phục điều đó như thế nào vậy bạn. Số lượng trong giỏ hàng ấy.
    Còn calendar mình muốn để cho người dùng chọn ngày mà. Sao nó k hiển thị như bên Windows Form vậy.

  5. #5
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    Nếu bạn làm như vậy thì code xử lý việc thêm sản phẩm vào giỏ hàng bạn thực hiện gọi ở sự kiện page_load đúng ko
    vậy bạn làm như sau:
    trong sự kiện Page_Load code:
    if(!IsPostback==false)
    {
    code xử lý phần đó bạn để trong này.
    }
    Muốn thành công thì đừng thất vọng - nhưng nếu có lúc thất vọng thì cứ làm việc trong sự thất vọng đi.

  6. #6
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    Mặc định Trang giỏ hàng tự thêm số lượng khi refesh, sửa như thế nào?

    bạn nên chú ý phần xử lý đăng nhập phần quản trị cho dù khách hàng có biết Url quản trị thì cũng ko thể vào đc có vào thì cũng Redirect đén trang Default cho người dùng. và khi kiểm tra đăng nhập vào quản trị bạn nên truyền theo parametter để tránh việc đăng nhập thế này cũng vào đc: abc' or 1=1--
    bạn thử xem vẫn vào binhthuwongfg đúng ko? ko cần mật khẩu gì hết ) thông cảm nhé! hihi
    Muốn thành công thì đừng thất vọng - nhưng nếu có lúc thất vọng thì cứ làm việc trong sự thất vọng đi.

  7. #7
    Ngày gia nhập
    05 2010
    Bài viết
    76

    nên viết 1 lớp lọc các ký tự đặc biệt và các thẻ html trước khi tương tác với database

  8. #8
    Ngày gia nhập
    05 2010
    Bài viết
    76

    Trích dẫn Nguyên bản được gửi bởi pvtam2a Xem bài viết
    bạn nên chú ý phần xử lý đăng nhập phần quản trị cho dù khách hàng có biết Url quản trị thì cũng ko thể vào đc có vào thì cũng Redirect đén trang Default cho người dùng. và khi kiểm tra đăng nhập vào quản trị bạn nên truyền theo parametter để tránh việc đăng nhập thế này cũng vào đc: abc' or 1=1--
    bạn thử xem vẫn vào binhthuwongfg đúng ko? ko cần mật khẩu gì hết ) thông cảm nhé! hihi
    bạn cũng có thể viết 1 lớp lọc các ký tự đặc biệt và các thẻ html trước khi tương tác với database

  9. #9
    Ngày gia nhập
    10 2009
    Nơi ở
    Việt Nam
    Bài viết
    359

    Theo mình làm theo cách bạn cũng đc, nhưng như mình thì phần hiển thị mình thường dùng datalist để hiển thị sản phẩm cần bán đúng ko? khi bấm chọn mua thì mình thực hiện việc thêm sản phẩm vào giỏ hàng ngay tại trang đó viết trong sự kiện Rowcommand gì của datalist đó, có thể thực hiện xong mình redirect đến trang giỏ hàng. cho họ xem giỏ hàng trên giao diện mình nên để 1 phần hiển thị thông tin giỏ hàng như số lượng + tổng tiền để ở site nào của web khách hàng cũng có thể biết được thông tin giỏ hàng của mình. thân!
    Muốn thành công thì đừng thất vọng - nhưng nếu có lúc thất vọng thì cứ làm việc trong sự thất vọng đi.

  10. #10
    Ngày gia nhập
    01 2011
    Bài viết
    126

    Mặc định .

    Trích dẫn Nguyên bản được gửi bởi pvtam2a Xem bài viết
    Theo mình làm theo cách bạn cũng đc, nhưng như mình thì phần hiển thị mình thường dùng datalist để hiển thị sản phẩm cần bán đúng ko? khi bấm chọn mua thì mình thực hiện việc thêm sản phẩm vào giỏ hàng ngay tại trang đó viết trong sự kiện Rowcommand gì của datalist đó, có thể thực hiện xong mình redirect đến trang giỏ hàng. cho họ xem giỏ hàng trên giao diện mình nên để 1 phần hiển thị thông tin giỏ hàng như số lượng + tổng tiền để ở site nào của web khách hàng cũng có thể biết được thông tin giỏ hàng của mình. thân!
    Mình tính làm như thế thêm vào giỏ hàng trc khi qua giỏ hàng, nhưng mình k biết làm sao để lấy masp của nó trên datalist, mình dùng imagesbutton để thực hiện. Bạn giúp với
    Trích dẫn Nguyên bản được gửi bởi jindoniit Xem bài viết
    bạn cũng có thể viết 1 lớp lọc các ký tự đặc biệt và các thẻ html trước khi tương tác với database
    Bạn cho mình code được không. Mình không biết vụ này.
    Trích dẫn Nguyên bản được gửi bởi pvtam2a Xem bài viết
    bạn nên chú ý phần xử lý đăng nhập phần quản trị cho dù khách hàng có biết Url quản trị thì cũng ko thể vào đc có vào thì cũng Redirect đén trang Default cho người dùng. và khi kiểm tra đăng nhập vào quản trị bạn nên truyền theo parametter để tránh việc đăng nhập thế này cũng vào đc: abc' or 1=1--
    bạn thử xem vẫn vào binhthuwongfg đúng ko? ko cần mật khẩu gì hết ) thông cảm nhé! hihi
    Mình k hiểu ý của bạn nói là sao hết.nói rõ dc không.

Các đề tài tương tự

  1. Giày thời trang - Cho hè thêm tự tin
    Gửi bởi decy1992 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 24-06-2012, 07:13 PM
  2. tại sao mỗi lần refesh số lần xem lại tăng lên
    Gửi bởi thuan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 7
    Bài viết cuối: 01-11-2011, 03:56 PM
  3. Thêm flash vào trang asp.net như thế nào?
    Gửi bởi b0yt4l3nt9z trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 17-01-2011, 07:12 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn