Sebagian pengguna tidak menyukai konfirmasi penghapusan dan konfirmasi update. Bagi mereka, hal ini tidak berguna, bahkan hanya menghambat kelancaran pekerjaan. Namun, bagi sebagian lainnya, hal ini sangat bermanfaat untuk mencegah ketidaksengajaan menghapus maupun memperbaharui data. Sebagai contoh, berikut adalah tangkapan layar daftar pengarang. Ketika pengguna mengklik salah satu tombol Delete, bila tidak ada konfirmasi, datanya langsung terhapus dari basis data dan tidak ada cara mudah untuk mengembalikannya. Namun bila ada konfirmasi, terlebih dahulu tampil pesan berikut. Begitu pula pembaruan data pengarang berikut. Ketika pengguna mengklik tombol Save, bila tidak ada konfirmasi, datanya langsung tersimpan ke dalam basis data. Bila ada kesalahan data, pengguna harus mengedit ulang datanya. Namun bila ada konfirmasi, terlebih dahulu tampil pesan berikut. Selain pengarang, masih ada data buku dan penerbit yang juga memerlukan konfirmasi penghapusan dan konfirmasi update sehingga total ada enam konfirmasi. Walaupun tidak salah, membuat enam buah konfirmasi sangat tidak efisien. Bagaimana kalau ada tambahan data lain, misalnya data anggota, data peminjaman, dsb., apakah harus dibuat lagi konfirmasi tambahannya? Ada kesamaan format tampilan pada dua contoh konfirmasi di atas. Daripada membuat enam komponen dialog yang berbeda, akan lebih efisien bila membuat sebuah komponen dialog yang dapat digunakan kembali tanpa batas. (1) Membuka aplikasi BookApp. (2) Membuat folder Component.
(3) Membuat file komponen Dialog.
(4) Kode sumber Berdasarkan gambar di atas, komponen dialog berisi properti berikut: Ada dua tombol yang kalau diklik memunculkan event (kejadian) yang memicu metode. Klik tombol pertama untuk menyetujui aksi yang akan dilakukan. Sebaliknya, klik tombol kedua untuk membatalkan aksi. Dengan demikian, selain tiga properti di atas, komponen dialog berisi dua metode, yaitu: Berikut adalah kode sumbernya. Dialog.razor Pada kode sumber di atas, ada properti ke-4 yaitu OnClose sebagai EventCallback sehingga Dialog.razor sebagai komponen anak dapat mengirimkan argumen ke komponen induk. Dalam kode di atas, argumen memiliki nilai:
Untuk menggunakan komponen Dialog.razor dalam aplikasi, tambahkan kode berikut ke dalam_Imports.razor. @using BookApp.Components Jadi kode lengkapnya adalah sebagai berikut: Teks yang dicetak tebal adalah kode tambahan. Implementasi Konfirmasi PenghapusanSebagai contoh, kita akan mengimplementasikan konfirmasi penghapusan data author (pengarang).
ListAuthor.razor Yang dicetak tebal adalah kode yang dimodifikasi dan kode tambahan. Implementasi Konfirmasi UpdateSebagai contoh, kita akan mengimplementasikan konfirmasi update data publisher (penerbit).
EditPublisher.razor Yang dicetak tebal adalah kode yang dimodifikasi dan kode tambahan. Sebagai contoh, berikut akan dibahas bagaimana konfirmasi penghapusan berproses.
Sampai di sini, ada dua pilihan bagi pengguna:
Membatalkan penghapusan Pengguna mengklik tombol Don’t Delete atau tombol X.
Menyetujui penghapusan Pengguna mengklik tombol Delete.
Event OnClose pada Dialog.razor memicu metode OnDialogClose(bool isOk) di ListAuthor.razor yang akan menghapus data jika dan hanya jika argumennya bernilai true. Selain untuk konfirmasi penghapusan dan update, komponen Dialog.razor dapat juga dipergunakan untuk keperluan lain, misalnya untuk menampilkan pesan kesalahan atau sekedar menampilkan informasi. Mungkin ada cara yang lebih baik untuk membuat komponen dialog modal yang dapat digunakan kembali dan menerapkannya pada konfirmasi penghapusan dan/atau konfirmasi pembaruan. Tolong beri tahu saya jika Anda mengetahuinya. Mungkin ada cara yang lebih baik untuk mengimplementasikan konfirmasi penghapusan dan konfirmasi update. Tolong beri tahu saya jika Anda mengetahuinya. Terima kasih sudah membaca. Semoga berfaedah. |