Dans le développement Web, vous rencontrez souvent une case à cocher avant chaque enregistrement de l'écran de la liste. Cliquez sur et sélectionnez l'enregistrement pour supprimer, modifier, afficher et d'autres opérations.
La modification et la visualisation sont d'obtenir la valeur d'ID d'un enregistrement, puis de la transmettre à l'arrière-plan pour interroger pour obtenir diverses valeurs d'attribut de l'objet Record, puis l'afficher à l'écran.
Le point clé dont je parle est de sélectionner plusieurs enregistrements, puis de les supprimer par lots. Comment obtenir la valeur d'ID de plusieurs enregistrements est la clé du problème. Le premier est la méthode de sélection de la case à cocher tous dans la page JSP.
Le code est le suivant:
Fonction Checkkevent (name, allCheckid) {var allck = document.getElementById (allCheckid); if (allck.checked == true) checkall (name); else checkallno (nom); } // sélectionnez toutes les fonctions CheckAll (name) {var noms = document.getElementsByName (name); var len = noms.length; if (len> 0) {var i = 0; for (i = 0; i <len; i ++) if (! name [i] .disabled) {names [i] .checked = true; }}} // Ne sélectionnez pas la fonction CheckAllNO (name) {var noms = document.getElementsByName (name); var len = noms.length; if (len> 0) {var i = 0; pour (i = 0; i <len; i ++) noms [i] .checked = false; }}Le code JSP qui appelle cette méthode:
<input name = "checkAll" id = "checkAll" onClick = "checkkevent ('choisisfaqid', 'checkAll')" type = "Checkbox" /> </ td>Où, ChooseFaqid est la valeur d'attribut de nom de la case à cocher, et CheckAll est la valeur d'attribut de nom de la case d'en-tête de table.
Lorsque la réception exécute du code JS Batch, il doit séparer les valeurs d'ID enregistré sélectionnées avec des virgules et supprimer le code de la méthode par lots comme suit:
fonction BatchdeleTechfaq (idstr) {var ids = "'"; $ ("input [name = 'ChoOsfaqid']"). Chaque (fonction () {if (this.checked) {ids + = this.value + "','"}}); ids + = "'"; ids = ids.replace (/, '' / g, ''); if (ids == "''") {jqdialog.Alert ("<s: text name = 'faqmanage.PeleaseSelectfaq' />"); retour; rès name = 'faqmanage.Operationwassuccessful' /> ", function () {window.location.href = window.location.href.replace (/ # / g, '');});} else {JQDialog.Alert (" <s: text name = 'faqmanage.OperationPleasesetryLater' /> ");}}}); }); }L'arrière-plan obtient un ensemble de valeurs d'ID renvoyées par la réception
Final String ids = this.getRequest (). getParAmètre ("ChoOsfaqid");La méthode d'origine pour obtenir le groupe d'ID sélectionné est la suivante:
Final String ids = this.getRequest (). getParameTervalues ("ChoOsFaqid");De cette façon, vous pouvez obtenir un tableau de chaînes directement sans aucune opération d'édition. Je ne me souviens pas de la raison pour laquelle j'ai changé la méthode actuelle plus tard.
Enfin, le code qui exécute le code supprimé dans l'arrière-plan BO Layer:
/ ** * Batch Delete FAQ Issue basé sur ID * @param faqanswer * @return * / public void BatchDeleteFaq (final String ids) {final String hql = "Delete from faqanswer o where o.id in (" + ids + ")"; faqManagerdao.Execute (HQL); }En résumé, j'utilise la méthode de soumission AJAX. Après avoir cliqué sur le bouton de suppression par lots, déterminez d'abord si l'utilisateur a sélectionné au moins l'enregistrement, sinon un message rapide apparaîtra. Après avoir sélectionné, cliquez sur le bouton Supprimer pour exécuter la méthode d'arrière-plan. Si l'opération ne parvient pas à s'exécuter, la zone de message de défaillance de l'opération apparaît.
Ce qui précède est la méthode d'obtention de plusieurs valeurs d'ID après avoir cliqué sur la case à cocher sur l'écran de la liste. J'espère que ce sera utile à tout le monde. Si vous souhaitez en savoir plus d'informations, veuillez faire attention au site Web Wulin.com!