ในส่วนที่ 8 เราได้เสร็จสิ้นฟังก์ชั่นการสอบถามและการลบหมวดหมู่ผลิตภัณฑ์ดังนั้นจึงเป็นเรื่องง่ายที่จะใช้ฟังก์ชั่นการสอบถามและการลบผลิตภัณฑ์ หลักการนั้นเหมือนกับในส่วนที่ 8 เพียงแค่แก้ไขพารามิเตอร์บางอย่างเช่นการร้องขอการกระทำที่แตกต่างกัน ฯลฯ เนื่องจากการสืบค้นและการลบผลิตภัณฑ์ไม่จำเป็นต้องมีหน้าต่าง UI ใหม่ที่จะปรากฏขึ้น
1. การใช้งานฟังก์ชั่นการสืบค้นผลิตภัณฑ์
ฟังก์ชั่นการสืบค้นส่วนใหญ่จะถูกนำไปใช้ในกล่องแบบสอบถาม จากส่วนก่อนหน้าเราจะเห็นว่ากล่องแบบสอบถามใช้ข้อความ: "<อินพุต id = 'ss' name = 'ss' />" เรานำไปใช้โดยการแปลงกล่องข้อความธรรมดาเป็นกล่องข้อความค้นหาแบบสอบถาม ด้านล่างเราเพิ่มส่วนที่เกี่ยวข้องของรหัสใน query.jsp:
$ ('#ss'). SearchBox ({// Trigger Query Event Searcher: function (value, ชื่อ) {// value แสดงถึงค่าอินพุต // เพิ่มรหัสทริกเกอร์ $ ('#dg'). dataGrid ('โหลด', {// reload, ระบุชื่อพารามิเตอร์ผลการทดสอบมีดังนี้:
แบบสอบถามนั้นง่ายมากเช่นเดียวกับการโหลดผลิตภัณฑ์ทั้งหมดในส่วนก่อนหน้ายกเว้นว่าเมื่อการสืบค้นพารามิเตอร์จะถูกตั้งค่าเป็นค่าที่ป้อนโดยผู้ใช้และเมื่อโหลดพารามิเตอร์ทั้งหมดถูกตั้งค่าให้ว่างเปล่า
2. การใช้งานฟังก์ชั่นการลบผลิตภัณฑ์
ต่อไปเราจะทำหน้าที่ของการลบผลิตภัณฑ์ให้เสร็จสมบูรณ์ ก่อนอื่นเราจะกรอกรหัสที่เกี่ยวข้องใน query.jsp:
{iconcls: 'icon-remove', ข้อความ: 'ลบผลิตภัณฑ์', handler: function () {// เพิ่มรหัสทริกเกอร์ var rows = $ ("#dg"). dataGrid ("getselections"); // ปกป้องว่ามีบันทึกแถวที่เลือกใช้ getSelections เพื่อรับแถวที่เลือกทั้งหมด // ส่งคืนแถวที่เลือก หากไม่มีการเลือกแถวให้ส่งคืนอาร์เรย์ที่ว่างเปล่าถ้า (rows.length == 0) {// ป๊อปอัพข้อความพรอมต์ $ .messager.show ({// ไวยากรณ์นั้นคล้ายกับวิธีการคงที่ใน Java การเรียกวัตถุโดยตรง: 'ข้อผิดพลาด', msg: 'อย่างน้อยหนึ่งระเบียน } else {// แจ้งว่าจะยืนยันการลบหรือไม่ หากได้รับการยืนยันตรรกะของการลบจะถูกดำเนินการ $ .messager.confirm ('ลบการยืนยันกล่องโต้ตอบ', 'คุณแน่ใจหรือไม่ว่าคุณต้องการลบรายการนี้?', ฟังก์ชั่น (r) {ถ้า (r) {// 1 รับ ID ที่เกี่ยวข้องจากฉัน {ids + = rows [i] .id + ",";} ids = ids.substr (0, ids.lastindexof (",")); $ ("#DG"). DataGrid ("Uncheckall"); ล้มเหลวโปรดตรวจสอบการดำเนินการ 'หมดเวลา: 2000, showtype:' slide ',}); - ดังที่เห็นได้จากรหัสข้างต้นการดำเนินการลบต้องใช้อย่างน้อยหนึ่งระเบียนที่จะเลือกก่อน หลังจากเลือกเมื่อยืนยันการลบ (นั่นคือ r เป็นจริง) ก่อนอื่นจะได้รับบันทึกที่ได้รับการตรวจสอบโดยผู้ใช้เชื่อมต่อหมายเลข ID ของบันทึกเหล่านี้เข้าด้วยกันแล้วต้องการส่งคำขอ AJAX ในพื้นหลังขอเมธอด DELETEBYIDS หากการลบสำเร็จให้ส่งสตริง "จริง" ไปยังเบื้องหน้าและจากนั้นเบื้องหน้าจะล้างบันทึกที่ตรวจสอบเพื่อหลีกเลี่ยงการดำเนินการอัปเดตที่ตามมาเนื่องจากการอัปเดตจำเป็นต้องตรวจสอบบันทึกแล้วรีเฟรชหน้าปัจจุบันและโหลดข้อมูลผลิตภัณฑ์ทั้งหมดในฐานข้อมูล
กระบวนการนี้ชัดเจนมาก มาเขียนโปรแกรมพื้นหลังเริ่มต้นด้วยเลเยอร์บริการ:
Public Interface Productservice ขยาย Baseservice <Product> {// ข้อมูลผลิตภัณฑ์แบบสอบถาม, หมวดหมู่การเรียงซ้อนรายการสาธารณะ <ductions> QueryJoincategory (ประเภทสตริง, หน้า int, ขนาด int); // แบบสอบถามโดยใช้ชื่อผลิตภัณฑ์ // สอบถามจำนวนทั้งหมดของบันทึกตามคำหลัก getCount ยาวสาธารณะ (ประเภทสตริง); // ลบหลายระเบียนตาม IDS โมฆะสาธารณะ DELETEBYIDS (String ID); } @suppresswarnings ("ไม่ได้ตรวจสอบ") @Service ("Productservice") Productions Class ProductserviceImpl ขยาย Baseserviceimpl <ผลิตภัณฑ์> ใช้ Productservice {// ละเว้นรหัสอื่น ๆ ... getSession (). createquery (HQL) .ExecuteUpdate (); - ถัดไปทำวิธี DELETEBYIDS ในการผลิต:
@Controller ("productaction") @Scope ("Prototype") Public Class ProductAction ขยาย baseaction <ductions> {// ละเว้นรหัสอื่น ... สตริงสาธารณะ deleteByIds () {system.out.println (ID); Productservice.deleteByids (ID); // หากการลบสำเร็จมันจะถูกดำเนินการลง เราจะส่งผ่าน "จริง" ไปยังเบื้องหน้าในรูปแบบของสตรีมอินพุตสตรีม = นิวบิทเทิร์เรย์บิ๊กสเตรม ("จริง" .getBytes ()); กลับ "สตรีม"; -แนวคิดเดียวกันกับก่อนหน้านี้สำหรับการลบคลาสผลิตภัณฑ์ต่อไปนี้ได้รับการกำหนดค่าใน struts.xml:
<action name = "product_*" method = "{1}"> <!-ละเว้นการกำหนดค่าอื่น ๆ-> <ชื่อผลลัพธ์ = "สตรีม" type = "สตรีม"> <param name = "inputName"> inputStream </param> </results> </action>ด้วยวิธีนี้สตริง "จริง" จะถูกส่งผ่านไปยังแผนกต้อนรับและการลบจะประสบความสำเร็จหลังจากได้รับคำแนะนำ ตรวจสอบเอฟเฟกต์:
การทดสอบประสบความสำเร็จและ ณ จุดนี้ฟังก์ชั่นการค้นหาและการลบของผลิตภัณฑ์เสร็จสมบูรณ์แล้ว
ที่อยู่บทความนี้: http://blog.csdn.net/eson_15/article/details/51360804
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น