Metode penghapusan di tampilan grid ASP.NET tidak aktif saat menggunakan javascript untuk mengonfirmasi penghapusan

pemrograman


Hai semuanya,

di saya asp:GridViewkomponen Saya memiliki pengaturan DeleteMethod. CommandField juga sudah diatur:

ASP
<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" />

Di dalam OnRowDataBound() metode yang saya periksa DeleteButton dan tambahkan javascript ke acara onclientclick.
Javascript berfungsi, tetapi Ok tidak memulai DeleteMethod di CodeBehind.

Ketika saya tidak menambahkan javascript, metode ini berfungsi.

Bagaimana agar tombol perintah hapus berfungsi dengan javascript?

** Menggunakan .NET Framework 4.7.2

Apa yang saya coba:

Kode saya untuk menambahkan javascript:

C
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?\");");
    }

Solusi 1

Tombol tautan/gambar WebForms diimplementasikan dengan memanggil beberapa JavaScript saat Anda mengkliknya.

Tapi Anda telah menambahkan JavaScript sebelum apa yang kembali tanpa syarat true/falseartinya kode ini tidak akan pernah dipanggil.

Jika Anda melihat sumber halaman Anda, Anda akan melihat sesuatu seperti:

HTML
onclick="javascript: return confirm(...); DoPostBack(...);"

Jelas metode postback tidak akan pernah bisa dipanggil.

Ubah-Mu OnClientClick hanya return jika pengguna memilih untuk membatalkan:

C#
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";

コメント

タイトルとURLをコピーしました