Di Bagian 8, kami telah menyelesaikan fungsi kueri dan menghapus kategori produk, sehingga mudah untuk mengimplementasikan fungsi -fungsi produk kueri dan menghapus. Prinsipnya persis sama seperti di bagian 8, cukup memodifikasi beberapa parameter, seperti meminta tindakan yang berbeda, dll. Karena permintaan dan menghapus produk tidak memerlukan jendela UI baru untuk muncul, kita hanya perlu menyelesaikan bagian yang sesuai dalam kueri.jsp dan latar belakang yang sesuai.
1. Implementasi fungsi kueri produk
Fungsi kueri terutama diimplementasikan di kotak kueri. Dari bagian sebelumnya, kita dapat melihat bahwa kotak kueri menggunakan teks: "<input id = 'ss' name = 'ss' />". Kami mengimplementasikannya dengan mengubah kotak teks biasa menjadi kotak teks pencarian kueri. Di bawah ini kami menambahkan bagian yang sesuai dari kode di query.jsp:
$ ('#ss'). SearchBox ({// Pemicu Kueri Acara Pencari: Fungsi (nilai, nama) {// Nilai mewakili nilai input // Tambahkan kode pemicu $ ('#dg'). DataGrid ('Load', {// Reload, tentukan nama parameter sebagai Nilai Input Pengguna: Nilai}); {// TOLON: TOLONE: 'HALUS:' HALUS: 'HALUM:' HALUM: 'TOLE:' TO.Hasil tes adalah sebagai berikut:
Kueri sangat sederhana, seperti memuat semua produk di bagian sebelumnya, kecuali bahwa saat meminta, parameter diatur ke nilai yang dimasukkan oleh pengguna, dan saat memuat semua parameter diatur untuk kosong.
2. Implementasi fungsi penghapusan produk
Selanjutnya, kami akan menyelesaikan fungsi penghapusan produk. Pertama, kami akan menyelesaikan kode yang sesuai di Query.jsp:
{iconcls: 'Icon-Remove', Teks: 'Hapus Produk', Handler: Function () {// Tambahkan kode pemicu var baris = $ ("#dg"). DataGrid ("getSelection"); // Pertahankan apakah ada catatan baris yang dipilih, gunakan getSelections untuk mendapatkan semua baris yang dipilih // kembalikan baris yang dipilih. Jika tidak ada baris yang dipilih, kembalikan array kosong IF (baris. } else {// minta apakah akan mengonfirmasi penghapusan. Jika dikonfirmasi, logika penghapusan dieksekusi $ .messager.confirm ('hapus dialog konfirmasi', 'apakah Anda yakin ingin menghapus item ini?', Function (r) {if (r) {// 1. Dapatkan ID yang sesuai dari catatan yang diperoleh, nada nilai ID, dan kemudian kirim latar belakang 1,2 ID. ++) {IDS += Baris [i] .id +","} IDS = IDS.Substr (0, IDS.LastIndexof (",")); Operasi Pembaruan Selanjutnya $ ("#DG"). DataGrid ("Uncreckall"); Exception ', MSG:' Hapus Gagal, silakan periksa operasi ', Timeout: 2000, ShowType:' Slide ',}); }}}}}}} Seperti yang dapat dilihat dari kode di atas, operasi penghapusan membutuhkan setidaknya satu catatan untuk dipilih terlebih dahulu. Setelah memilih, ketika mengonfirmasi penghapusan (yaitu, R adalah benar), pertama -tama dapatkan catatan mana yang telah diperiksa oleh pengguna, menyatukan nomor ID dari catatan ini, dan kemudian ingin mengirim permintaan AJAX di latar belakang, meminta metode deletebyIds dalam produksi, dan mengambil ID yang disambung sebagai parameter. Jika penghapusan berhasil, kembalikan string "benar" ke latar depan, dan kemudian latar depan akan menghapus catatan yang baru saja diperiksa untuk menghindari mempengaruhi operasi pembaruan berikutnya, karena pembaruan juga perlu memeriksa catatan, kemudian menyegarkan halaman saat ini dan memuat ulang semua informasi produk dalam database.
Prosesnya sangat jelas. Mari kita tulis program latar belakang, dimulai dengan lapisan layanan:
Public Interface ProductService memperluas BASESERVICE <Product> {// Informasi Produk Kueri, Kategori Cascading Daftar Publik <Product> QueryJoincategory (Jenis String, Halaman int, ukuran int); // kueri menggunakan nama produk // kueri Total jumlah catatan berdasarkan kata kunci public long getCount (tipe string); // hapus beberapa catatan berdasarkan IDS public void deletebyIds (ID string); } @SuppressWarnings ("Uncecked") @Service ("ProductService") ProductServiceImpl memperluas BASESERVICEIMPL <Product> mengimplementasikan ProductService {// hilangkan kode lain ... @Override public deletyids (string id) {string hql = "hapus dari produk p.id di p.id inid in (string IDS) {string hql =" hapus dari p.id di mana p.id inid in p.id in (string ids) {string hql = "hapus dari produk p.id di p.id inid in p.id in (string IDS) {string hql =" hapus dari p.End void deletyIds (string IDS) {string hQL = "Delete dari P. getSession (). Createqueery (HQL) .ExecuteUpdate (); }} Selanjutnya, selesaikan metode DeletebyIds di ProductAction:
@Controller ("ProductAction") @scope ("ProtoType") Public Class ProductAction memperluas basa <product> {// hilangkan kode lain ... public string deletebyIds () {system.out.println (ids); ProductService.DeletebyIds (IDS); // Jika penghapusan berhasil, itu akan dieksekusi ke bawah. Kami akan lulus "benar" ke latar depan dalam bentuk stream inputStream = bytearrayInputStream baru ("true" .getbytes ()); mengembalikan "stream"; }}Gagasan yang sama seperti sebelumnya untuk menghapus kelas produk, berikut ini dikonfigurasi dalam struts.xml:
<action name = "Product_*" Method = "{1}"> <!-menghilangkan konfigurasi lain-> <result name = "stream" type = "stream"> <param name = "inputName"> inputStream </param> </rence> </cich> Action>Dengan cara ini, string "true" akan diteruskan ke meja depan dan penghapusan akan berhasil setelah menerima instruksi. Lihat efeknya:
Tes ini berhasil, dan pada titik ini, fungsi pencarian dan penghapusan produk telah selesai.
Alamat artikel ini: http://blog.csdn.net/eson_15/article/details/51360804
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.