private void cmbSort_SelectionChangeCommitted(object sender, EventArgs e)
        {
            // hàng mới, giá tăng dần, giá giảm dần, hãng sx
            int SelectedIndex = cmbSort.SelectedIndex;

            int nComboBoxSeletedValue = ComboBox_CurrentSelectedValue;

            listProducts.Clear();
            GridPanel.Clear();
            PanelGridProduct.Controls.Clear();

            // nếu chọn tất cả thì cho = -1
            if (cmbProductCategories.GetItemText(cmbProductCategories.SelectedItem) == "Tất cả")
            {
                nComboBoxSeletedValue = -1;
            }

            // lây danh sách sản phẩm dựa vào loại sản phẩm
            DataTable dtProducts = null;

            switch (SelectedIndex)
            {
            case (int)SortTypeIndex.Khong:
                GetDataProducts(nComboBoxSeletedValue);
                break;

            case (int)SortTypeIndex.GiaGiamDan:
                // chọn sản phẩm được xếp theo giá giảm dần
                dtProducts = bus_Products.BUS_GetProductInfoByCategoryIDAndTypeSort
                                 (nComboBoxSeletedValue, (int)SortTypeIndex.GiaGiamDan);
                break;

            case (int)SortTypeIndex.GiaTangDan:
                // chọn sản phẩm được xếp theo giá
                dtProducts = bus_Products.BUS_GetProductInfoByCategoryIDAndTypeSort
                                 (nComboBoxSeletedValue, (int)SortTypeIndex.GiaTangDan);
                break;

            case (int)SortTypeIndex.HangSanXuat:
                // chọn sản phẩm được xếp theo hãng sản xuất
                dtProducts = bus_Products.BUS_GetProductInfoByCategoryIDAndTypeSort
                                 (nComboBoxSeletedValue, (int)SortTypeIndex.HangSanXuat);
                break;
            }

            if (SelectedIndex != (int)SortTypeIndex.Khong)
            {
                if (dtProducts == null)
                {
                    MessageBox.Show("Có lỗi xảy ra khi load dữ liệu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                foreach (DataRow row in dtProducts.Rows)
                {
                    DTO_Product product = new DTO_Product
                    {
                        ID              = int.Parse(row["ID_MASP"].ToString()),
                        CategoryID      = int.Parse(row["ID_MALOAI"].ToString()),
                        ManufacturerID  = int.Parse(row["ID_HANGSX"].ToString()),
                        ProductName     = row["TENSP"].ToString(),
                        ProductQuantity = int.Parse(row["SOLUONG"].ToString()),
                        ProductPrice    = int.Parse(row["DONGIA"].ToString()),
                        ProductImage    = (Byte[])row["HINHANH"]
                    };

                    listProducts.Add(product);
                }
            }

            if (listProducts.Count == 0)
            {
                MessageBox.Show("Không có data để hiển thị!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // get max cell
            this.GetMaxCellInPage_PanelGridProducts();

            // get max page
            this.GetMaxPage_PanelGridProducts();

            // load data vô current page
            RenderFrameAndDataToCurrentPage();
        }