-
13-12-2012, 03:06 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cách dùng checkbox chọn để xóa nhiều bản ghi cùng một lúc?
em đang làm về website điên thoại. giả sử có hai bảng: sanpham(masp,tensp,hinhanh,giasp) và chitietsp(machitet,masp,kichthuoc,kieudang,mausac)
khi hiển thị lên gridview mình chỉ hiển thị bảng sanpham.
em muốn khi chọn checkbox trên gridview rồi click vào nút xóa thì xóa hết thông thi về sản phẩm ở cả hai bảng. làm vậy có được không ạ!
em mới học làm web bằng LINQ to SQL các anh chị giúp em vớiView more random threads:
- Lỗi khi load movie cho AxShockwareFlashObject
- Lỗi Invalid token 'char' in class, struct, or interface member declaration
- Kiểm tra kích thước file khi multi upload
- sử dụng dropdownlist in MVC lỗi: There is no ViewData item of type 'IEnumerable
'? - Soạn thảo FDK các dòng cách nhau lớn (cách khắc phục)
- cách lấy thông tin thời tiết các tỉnh trong nước
- làm thế nào lấy giá trị FCKeditor khi thay đổi value
- Load dữ liệu từ Gridview theo dropdownlist.
- Vấn đề upload file trong asp.net
- Datalist - DataKeyField- DataMember
-
13-12-2012, 04:08 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
vậy thì bạn viết store procedure để thực hiện việc xóa này.
-
13-12-2012, 04:22 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi kenturo
-
13-12-2012, 05:00 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
vậy thì lúc fill data lên thì fill kèm id theo nữa, để xóa nhiều checkbox thì xử lý trong sự kiện gridview_command (ko nhớ rõ ) nếu checkbox nào checked=true thì đi thực hiện
-
18-12-2012, 04:16 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
cảm ơn bạn! mình đã làm được rồi! [IMG]images/smilies/smile.png[/IMG]
-
18-12-2012, 04:56 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Chào bạn!
Mình k viết cụ thể code. Mình viết hướng đi. Rồi bạn cứ thế làm nhé.
Đầu tiên là Stored để xóa ở 2 bảng sản phẩm và chi tiết sản phẩm
CREATE PROCEDURE [dbo].[deleteProduct]
@masp int
AS
BEGIN
IF (Not(Exists(SELECT * FROM chitietsp WHERE masp=@masp)))
BEGIN
DELETE FROM [chitietsp]
WHERE [masp]=@masp
DELETE [sanpham]
WHERE [masp] = @masp
END
END
- Ở đây stored sẽ duyệt tìm sản phẩm có mã truyền vào ở bảng chitietsap. Khi tìm thấy sẽ xóa các sản phẩm đó ở bảng chitiet sau đó xóa tiếp sản phẩm ở bảng sanpham.
Trong sự kiện click của nút xóa nhiều sản phẩm bạn viết code xóa các sản phẩm đã chọn.
1. Hàm javascrip chọn tất cả:
<script language="javascript" type="text/javascript">
function checkall(class_name, obj) {
//Duyệt qua các checkbox có class = class_name (item)
//Trả về các phần tử ở dạng mảng, bắt dầu từ vị trí 0;
var items = document.getElementsByClassName(class_name);
if (obj.checked == true) //Đã được chọn
{
for (i = 0; i < items.length; i++)
items[i].checked = true;
}
else { //Checkbox chưa được chọn
for (i = 0; i < items.length; i++)
items[i].checked = false;
}
}
</script>
Phần HearderTemplate bạn thêm 1 trường checkall tất cả các item:
Code: <input type="checkbox" title="Chọn hết" value="check_none" onclick="this.value=checkall('checkbox',this)" class="submit"/>
2. Xóa các item đã chọn
Code:
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox checkboox = (CheckBox)row.FindControl("checkItem");
if (checkboox.Checked)
{
string id = GridView1.DataKeys[row.RowIndex].Value.ToString();
ProductService.tblproduct_Delete(id);//Gọi phương thức xóa và truyền vào ID sản phẩm
}
}
Ở đây mình viết theo 3 lớp bạn nhé. ProductService là lớp mình gọi phương thức xóa ở 1 lớp nữa có chứa pthuc thao tác với Stored đã viết ở phía trên. Sau khi xóa bạn gọi phương thức load lại dữ liệu vào GridView.
Tùy theo bạn cách bạn viết để áp dụng.
Thân!
Pallet nhựa Long An đã trở thành một trong những lựa chọn phổ biến cho nhu cầu vận chuyển và lưu trữ hàng hóa trong nhiều ngành công nghiệp. Với đặc tính nhẹ nhàng, chắc chắn và dễ vận chuyển, các...
Thanh lý pallet nhựa Long An giá rẻ