Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1

    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ới

  2. #2
    vậy thì bạn viết store procedure để thực hiện việc xóa này.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kenturo
    vậy thì bạn viết store procedure để thực hiện việc xóa này.
    Ý bạn ấy là làm sao lấy được ID của những ô mà nhấn checkbox trong gridview bạn à?

  4. #4
    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

  5. #5
    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]

  6. #6
    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!

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •