No desenvolvimento da Web, você geralmente encontra uma caixa de seleção antes de cada registro na tela da lista. Clique e selecione o registro para excluir, modificar, visualizar e outras operações.
A modificação e a visualização são obter o valor de ID de um registro e depois passá -lo para o plano de fundo para consultar para obter vários valores de atributo do objeto de registro e, em seguida, exibi -lo na tela.
O ponto principal de que estou falando é selecionar vários registros e excluí -los em lotes. Como obter o valor de identificação de vários registros é a chave do problema. O primeiro é o método de selecionar a caixa de seleção, tudo na página JSP.
O código é o seguinte:
função checkevent (nome, allcheckId) {var allck = document.getElementById (allCheckId); if (allck.checked == true) checkall (nome); else checkallno (nome); } // Selecione toda a função checkall (nome) {var names = document.getElementsByName (nome); var len = names.length; if (len> 0) {var i = 0; for (i = 0; i <len; i ++) if (! nomes [i] .disabled) {nomes [i] .checked = true; }}} // Não selecione Função checkallno (nome) {var names = document.getElementsByName (nome); var len = names.length; if (len> 0) {var i = 0; for (i = 0; i <len; i ++) nomes [i] .checked = false; }}O código JSP que chama esse método:
<input name = "checkall" id = "checkall" onclick = "checkevent ('escolhafaqid', 'checkall')" tipo = "caixa de seleção"/> </td>Onde, CHARCEFAQID é o valor do atributo de nome da caixa de seleção, e o CheckAll é o valor do atributo de nome da caixa de seleção do cabeçalho da tabela.
Quando a recepção executa o código JS em lote, ele precisa separar os valores de ID de registro selecionados com vírgulas e excluir o código do método em lote da seguinte forma:
função BatchdeleteChfaq (idstr) {var ids = "'"; $ ("input [name = 'escolhafaqid']"). cada (function () {if (this.checked) {ids+= this.value+"','"}}); ids+= "'"; ids = ids.replace (/, ''/g, ''); if (ids == "''") {jqdialog.alert ("<s: nome do texto = 'faqManage.PleaseSelectfaq'/>"); retornar; } $ .ajax ({type: "post", url: "admin/faqManageaction! BatchDeleteFaq.action", Data: {escolhaFAQID: IDS}, Datatype: "Text", SUCCESS: function (html) {if (html == "tept") {JQDial. name = 'faqManage.operationWassuccessful'/> ", function () {window.location.href = window.location.href.replace (/#/g, '');});} else {jqdialog.alert (" <s: texth 'name =' faqManage.operatória }); }O plano de fundo obtém um conjunto de valores de identificação enviados de volta pela recepção
Final String Ids = this.getRequest (). getParameter ("CHOOKFAQID");O método original de obter o grupo selecionado de IDs é o seguinte:
Final String Ids = this.getRequest (). getParameterValues ("CHOOKFAQID");Dessa forma, você pode obter uma matriz de string diretamente sem as operações de edição. Não me lembro como o motivo de mudar para o método atual mais tarde.
Finalmente, o código que executa o código excluído na camada BO em segundo plano:
/ ** * Emissão de perguntas frequentes de exclusão em lote com base no ID * @param faqanswer * @return */ public void BatchDeleteFAQ (Final String Ids) {final String hql = "Exclua do faqanswer o onde o.id in ("+ids+")"; faqmanagerdao.execute (HQL); }Em resumo, eu uso o método de envio do AJAX. Depois de clicar no botão de exclusão de lote, primeiro determine se o usuário selecionou pelo menos o registro, caso contrário, uma mensagem rápida será exibida. Depois de selecionar, clique no botão Excluir para executar o método de plano de fundo. Se a operação não executar, a caixa de mensagem de falha da operação será exibida.
O acima é o método de obter vários valores de ID após clicar na caixa de seleção na tela da lista. Espero que seja útil para todos. Se você quiser saber mais informações, preste atenção ao site wulin.com!