private void Save_Data(bool msg)
 {
     try
     {
         _KBCDKTRepo = new KBCDKTRepo();
         int i = 0;
         foreach (int pos in _listUpdate)
         {
             string id = Utils.CStrDef(gridView1.GetRowCellValue(pos, "CHI_TIEU"), "");
             KB_CDKT obj = _KBCDKTRepo.GetById(id.Trim());
             if (obj != null)
             {
                 Get_Data(obj, pos);
                 _KBCDKTRepo.Update(obj);
                 i++;
             }
         }
         _listUpdate = new List<int>();
         //if (i > 0 && msg)
         //{
         //    MessageBox.Show("Lưu thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
         //}
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
 private void Load_Data()
 {
     try
     {
         _KBCDKTRepo = new KBCDKTRepo();
         gridData.DataSource = _KBCDKTRepo.GetAll();
     }
     catch (Exception) { }
 }
 private void Save_Tick()
 {
     try
     {
         _KBCDKTRepo = new KBCDKTRepo();
         string _id = Utils.CStrDef(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "CHI_TIEU").ToString(), "");
         KB_CDKT obj = _KBCDKTRepo.GetById(_id.Trim());
         if (obj != null)
         {
             obj.DANH_DAU = Utils.CStrDef(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "DANH_DAU"), "").Trim() == "T" ? "" : "T";
             _KBCDKTRepo.Update(obj);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void gridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
        {
            try
            {
                GridView view = sender as GridView;
                _KBCDKTRepo = new KBCDKTRepo();
                //Kiểm tra đây là dòng dữ liệu mới hay cũ, nếu là mới thì mình insert
                if (view.IsNewItemRow(e.RowHandle))
                {
                    //e.RowHandle trả về giá trị int là thứ tự của dòng hiện tại
                    KB_CDKT obj = new KB_CDKT();
                    Get_Data(obj, e.RowHandle);
                    _KBCDKTRepo.Create(obj);

                }
                //Cũ thì update
                else
                {
                    string id = Utils.CStrDef(gridView1.GetRowCellValue(e.RowHandle, "CHI_TIEU").ToString(), "");
                    KB_CDKT obj = _KBCDKTRepo.GetById(id);
                    if (obj != null)
                    {
                        Get_Data(obj, e.RowHandle);
                        _KBCDKTRepo.Update(obj);
                    }

                }
                Load_Data();
            }
            catch (Exception ex)
            {
                e.Valid = false;
                MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void Remove_Data()
        {
            try
            {
                //if (_listUpdate.Count > 0)
                //{
                //    MessageBox.Show("Hãy thực hiện lưu trước khi xóa!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //    return;
                //}
                Save_Data(false);

                _KBCDKTRepo = new KBCDKTRepo();
                string _id = Utils.CStrDef(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "CHI_TIEU").ToString(), "");
                _KBCDKTRepo.Remove(_id);

                //MessageBox.Show("Xóa dòng ID:" + Id + " thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Load_Data();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 private void Save_Duplicate()
 {
     try
     {
         if (MessageBox.Show("Bạn có muốn copy dòng này thành dòng mới?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
         {
             _KBCDKTRepo = new KBCDKTRepo();
             KB_CDKT obj = new KB_CDKT();
             Get_Data(obj, gridView1.FocusedRowHandle);
             _KBCDKTRepo.Create(obj);
             MessageBox.Show("Đã copy dòng này vào cuối bảng!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }