[ad_1]
Chào các bạn,
trong tôi asp:GridView
thành phần tôi có thiết lập DeleteMethod. Ngoài ra CommandField được thiết lập:
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true" ButtonType="Image" ControlStyle-Width="24px" EditImageUrl="~/Images/edit-icon-png-3601.png" CancelImageUrl="~/Images/close-button-png-30225.png" UpdateImageUrl="~/Images/check-tick-icon-14150.png" DeleteImageUrl="~/Images/trash-can-24846.png" />
TRONG OnRowDataBound()
phương pháp tôi kiểm tra DeleteButton
và thêm javascript vào sự kiện onclientclick.
Javascript hoạt động, nhưng Ok không dẫn đến việc bắt đầu DeleteMethod
trong CodeBehind.
Khi tôi không thêm javascript, phương thức này sẽ hoạt động.
Làm cách nào để nút lệnh xóa hoạt động với javascript?
** Sử dụng .NET Framework 4.7.2
Những gì tôi đã thử:
Mã của tôi để thêm javascript:
public static void AddDeleteMessage(GridViewRow row) { int nrControls = row.Controls.Count; Control lastGridViewCell = row.Controls[nrControls - 1]; var deleteButton = lastGridViewCell.Controls.OfType<ImageButton>().FirstOrDefault(btn => btn.CommandName == "Delete"); if (deleteButton != null) { deleteButton.OnClientClick = string.Format("javascript: return confirm(\"Are you sure?\");"); }
Giải pháp 1
Các nút liên kết/hình ảnh WebForms được triển khai bằng cách gọi một số JavaScript khi bạn nhấp vào chúng.
Nhưng bạn đã thêm JavaScript trước cái mà trả lại vô điều kiện true/false
nghĩa là mã này sẽ không bao giờ được gọi.
Nếu bạn xem nguồn trang của mình, bạn sẽ thấy một cái gì đó giống như:
onclick="javascript: return confirm(...); DoPostBack(...);"
Rõ ràng phương thức postback không bao giờ có thể được gọi.
Thay đổi của bạn OnClientClick
chỉ return
nếu người dùng chọn hủy:
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";
[ad_2]
コメント