في تطوير الويب ، غالبًا ما تواجه خانة اختيار قبل كل سجل في شاشة القائمة. انقر وحدد السجل لحذف العمليات والتعديل والعرض والعمليات الأخرى.
من المقرر أن يحصل التعديل والعرض على قيمة معرف السجل ومن ثم تمريره إلى الخلفية للاستعلام للحصول على قيم سمة مختلفة لكائن السجل ، ثم عرضها على الشاشة.
النقطة الرئيسية التي أتحدث عنها هي تحديد سجلات متعددة ثم حذفها على دفعات. كيفية الحصول على قيمة معرف السجلات المتعددة هو مفتاح المشكلة. الأول هو طريقة تحديد مربع الاختيار في صفحة JSP.
الرمز كما يلي:
دالة checkevent (name ، allcheckid) {var allck = document.getElementById (allcheckid) ؛ if (allck.checked == true) checkall (name) ؛ آخر checkallno (الاسم) ؛ } // حدد All Function Checkall (name) {var names = document.getElementSbyName (name) ؛ var len = names.length ؛ if (len> 0) {var i = 0 ؛ لـ (i = 0 ؛ i <len ؛ i ++) if (! names [i] .disabled) {names [i] .checked = true ؛ }}} // لا تحدد وظيفة checkallno (name) {var names = document.getElementSbyName (name) ؛ var len = names.length ؛ if (len> 0) {var i = 0 ؛ لـ (i = 0 ؛ i <len ؛ i ++) }}رمز JSP الذي يدعو هذه الطريقة:
<input name = "checkall" id = "checkall" onClick = "checkevent ('checkfaqid' ، 'checkall')" type = "checkbox"/> </td>حيث ، اختر FaqID هي قيمة سمة الاسم لخانة الاختيار ، والتحقق من قيمة السمة الاسم الخاصة بخانة رأس رأس الجدول.
عندما يقوم مكتب الاستقبال بتنفيذ رمز Batch JS ، فإنه يحتاج إلى فصل قيم معرف السجل المحددة مع الفواصل ، وحذف رمز طريقة الدُفعات على النحو التالي:
دالة batchDelecteChfaq (idstr) {var ids = "''" ؛ $ ("input [name = 'cyectorfaqid']"). كل (دالة () {if (this.checked) {ids+= this.value+"'،'"}}) ؛ IDS+= "'' '؛ ids = ids.replace (/، ''/g ، '') ؛ if (ids == "''") {jqdialog.alert ("<s: text name = 'faQManage.pliseElectfaq'/>") ؛ يعود؛ } $ .ajax ({type: "post" ، url: "admin/faqManageAction! batchdeletefaq.action" ، data: {chickfaqid: ids} ، datatype: "text" ، success: function (html) {if (html == "success") {jqdialog. name = 'faqmanage.operationwassuccessful'/> "، function () {window.location.href = window.location.href.replace (/#/g ، '') ؛}) ؛} else {jqdialog.alert ( }) ؛ }تحصل الخلفية على مجموعة من قيم المعرف المرسلة بواسطة مكتب الاستقبال
معرفات السلسلة النهائية = this.getRequest (). getParameter ("اختيار faqid") ؛الطريقة الأصلية للحصول على المجموعة المحددة من المعرفات هي ما يلي:
معرفات السلسلة النهائية = this.getRequest (). getParameTervalues ("اختيار faqid") ؛وبهذه الطريقة يمكنك الحصول على مجموعة سلسلة مباشرة دون أي عمليات تحرير. لا أستطيع أن أتذكر ما السبب الذي قمت بتغييره إلى الطريقة الحالية لاحقًا.
أخيرًا ، الرمز الذي ينفذ الرمز المحذوف في طبقة BO الخلفية:
/ ** * حذف الدفعة مشكلة الأسئلة الشائعة بناءً على المعرف * param faqanswer * return */ public void batchdeletefaq (IDS Final String) {Final String Hql = "delete from faqanswer o حيث O.ID في ("+ids+") ؛ faqmanagerdao.execute (HQL) ؛ }باختصار ، أستخدم طريقة تقديم أياكس. بعد النقر فوق زر حذف الدُفعات ، حدد أولاً ما إذا كان المستخدم قد حدد على الأقل السجل ، وإلا فإن رسالة موجه ستظهر. بعد الاختيار ، انقر فوق الزر "حذف" لتنفيذ طريقة الخلفية. إذا فشلت العملية في التنفيذ ، فإن مربع رسالة فشل التشغيل يبرز.
ما سبق هو طريقة الحصول على قيم معرف متعددة بعد النقر فوق خانة الاختيار على شاشة القائمة. آمل أن يكون ذلك مفيدًا للجميع. إذا كنت تريد معرفة المزيد من المعلومات ، فيرجى الانتباه إلى موقع Wulin.com!