1. View
- Thêm chức năng hiển thị ô chọn việc thực xoá
<input type="checkbox" name="SelectedCatDelete" value="@item.MaKhachHang">
item.MaKhachHang tức là model thể hiện dữ liệu của Mã khách hàng
name="SelectedCatDelete" để dùng truyền tham số vào action
- Tạo 1 nút nhấn submit xoá hàng loạt
<button type="submit" class="btn btn-danger">Delete Selected Rows</button>
- Chú ý: sử dụng form action với phương thức là POST bao quanh cả table chứa cái checkbox và nút nhấn submit
@using (Html.BeginForm("DeleteMultiple", "Customer", FormMethod.Post))
{
<div class="form-group">
<table class="table table-striped">
....
</table>
</div>
<div class="form-group">
<button type="submit" class="btn btn-danger">Delete Selected Rows</button>
</div>
}
2. Controller
Chèn đoạn code này vào Controller
[HttpPost]
public IActionResult DeleteMultiple(IEnumerable<int> SelectedCatDelete)
{
khachHangRepository.DeleteSelectedKhachHang(SelectedCatDelete);
TempData["Message"] = $"Xoá {SelectedCatDelete.Count()} hàng thành công";
return RedirectToAction("Index");
}
- SelectedCatDelete: là collection của tập hợp các giá trị "Mã khách hàng" mình đã nhấn chọn lựa(selected)
3. Repository
- IKhachHangRepository
IEnumerable<KhachHang> DeleteSelectedKhachHang(IEnumerable<int> DeleteList);
- KhachHangRepository
public IEnumerable<KhachHang> DeleteSelectedKhachHang(IEnumerable<int> DeleteList)=> KhachHangDao.Instance.RemoveKhachHangSelected(DeleteList);
4. DAO
public IEnumerable<KhachHang> RemoveKhachHangSelected(IEnumerable<int> DeleteList)
{
using var context = new MyStockContext();
var DeleteCatList = context.KhachHangs.Where(z => DeleteList.Contains(z.MaKhachHang)).ToList();
context.KhachHangs.RemoveRange(DeleteCatList);
context.SaveChanges();
return DeleteCatList;
}