Recuperar checkbox selecionados jsf

5 respostas
java
E

Boa noite, estou como um projeto JSF e na tela de cadastro eu preencho alguns checkbox e salvo esses dados no banco, o método salvar funciona normalmente, mas na hora que eu clico no botão editar os checkbox que eu salvei não vem selecionado.

Como posso resolver esse problema?

5 Respostas

L

Coloca o código JSF e bean para darmos uma olhada?

E

Bom dia, eu tenho um combobox que ao selecionar o curso, é exibido as checkbox com o nome dos alunos via ajax, para o usuário selecionar o aluno e salvar no banco.

Código JSF

<p:selectManyCheckbox id="grid2" value="#{frequenciaBean.selectedMatriculas}" layout="grid" columns="1" converter="simpleEntityConverter">
    <f:selectItems id="checkBox" value="#{frequenciaBean.matriculas}"  var="matricula" itemLabel="#{matricula.aluno.pessoa.nome}" itemValue="#{matricula}"/>			        
</p:selectManyCheckbox>

Botão editar

<p:commandButton icon="ui-icon-pencil" title="Editar" update="frm">
    <f:setPropertyActionListener target="#{frequenciaBean.frequencia}"
							value="#{listaFrequencia}" />
</p:commandButton>

Código Bean

public void pesquisarAlunosPorCurso() {	
    this.matriculas = frequenciaService.listarAlunosPorCurso(frequencia.getCurso().getCodigo());
}
L

Uma das características do Ajax é que ele força uma atualização na tela, limpando tudo o que foi preenchido… Se é o caso de manter, dentro do selectManyCheckbox, vc poderia chamar uma função que a cada seleção, já insere ou retirar os objetos no selectedMatricula

E

Você podeira dar um exemplo?

L

Não pude testar esse exemplo…

<p:selectManyCheckbox id="grid2" value="#{frequenciaBean.selectedMatriculas}" layout="grid" columns="1" converter="simpleEntityConverter">
    <f:selectItems id="checkBox" value="#{frequenciaBean.matriculas}"  var="matricula" itemLabel="#{matricula.aluno.pessoa.nome}" itemValue="#{matricula}"/>			
    <p:ajax event="select" listener="#{frequenciaBean.matriculasSelecionadas}"/>			
</p:selectManyCheckbox>

*Verifique se o evento utilizado é select mesmo

No bean, você pode salvar num objeto temporário, algo como selectedMatriculasTemp, algo como

public void matriculasSelecionadas() {	
    this.selectedMatriculasTemp = selectedMatriculas;
}

Basta você carregar de volta esse objeto quando clicar em editar

Criado 19 de julho de 2016
Ultima resposta 19 de jul. de 2016
Respostas 5
Participantes 2