Boa tarde galera,
tenho uma tabela que vou colocar em cada linha um checkbox, com o botao de “marcar todas” e “desmarcar todas”. para dps levar todos os dados para uma outra tela…
como posso fazer isso?
Boa tarde galera,
tenho uma tabela que vou colocar em cada linha um checkbox, com o botao de “marcar todas” e “desmarcar todas”. para dps levar todos os dados para uma outra tela…
como posso fazer isso?
No action do checkbox você pode fazer um for na lista que é exibida e marcar como true ou false a propriedade que está linkada no value do checkbox.
Também tive que fazer isso alguns dias atrás.
Até.
Cara, nao entendi direito o que quiz diz… pode explicar com exemplos?
Esta usando qual versão do JSF ? Esta usando alguma biblioteca de componentes ?
Caso seja JSF 1.2 e não estiver usando RichFaces ou outro qualquer, recomendo usar um javascript.
Senão dá pra fazer por ajax.
Segue meu bean.
public class Pessoa {
private Boolean marcado = false;
private String nome;
private String sobrenome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSobrenome() {
return sobrenome;
}
public void setSobrenome(String sobrenome) {
this.sobrenome = sobrenome;
}
public Boolean getMarcado() {
return marcado;
}
public void setMarcado(Boolean marcado) {
this.marcado = marcado;
}
}
Meu managed bean com escopo request
import java.util.ArrayList;
import java.util.List;
public class PessoaMB {
private List<Pessoa> listPessoa;
public PessoaMB() {
Pessoa p;
this.listPessoa = new ArrayList<Pessoa>();
p = new Pessoa();
p.setNome("teste");
p.setSobrenome("123");
this.listPessoa.add(p);
p = new Pessoa();
p.setNome("teste2");
p.setSobrenome("123456");
this.listPessoa.add(p);
p = new Pessoa();
p.setNome("teste3");
p.setSobrenome("125345");
this.listPessoa.add(p);
}
public List<Pessoa> getListPessoa() {
return listPessoa;
}
public void setListPessoa(List<Pessoa> listPessoa) {
this.listPessoa = listPessoa;
}
public String marcarTodos(){
for (Pessoa pessoa : listPessoa) {
pessoa.setMarcado(true);
}
return null;
}
}
Código da minha página JSF
<h:form>
<h:commandLink action="#{pessoaMB.marcarTodos}" value="Mercar todos"/>
<h:dataTable value="#{pessoaMB.listPessoa}" var="pessoa">
<h:column>
<h:selectBooleanCheckbox value="#{pessoa.marcado}"/>
</h:column>
<h:column>
<h:outputText value="#{pessoa.nome}"/>
</h:column>
<h:column>
<h:outputText value="#{pessoa.sobrenome}"/>
</h:column>
</h:dataTable>
</h:form>
Caso tiver dúvidas estamos ai…
Valeu
valeu mano robsonperassoli
Vou implementar aqui e retorno… se der certo coloco concluido…
abraços
Galera consegui resolver desse modo:
Usando JavaScript:
[code]
function selecionar_tudo(table1, checkName){
selecionarChecks(table1, checkName, true);
}
function deselecionar_tudo(table1, checkName){
selecionarChecks(table1, checkName, false);
}
function selecionarChecks(table1, checkName, select) {
elems = table1.getElementsByTagName(“input”);
for (i=0;i<elems.length;i++) {
elem = elems[i];
if(elem.type && elem.name) {
if (elem.type == “checkbox” && elem.name == checkName) {
elem.checked=select;
}
}
}
}[/code]
e no JSF:
><webuijsf:hyperlink id="visualizarLink3" onClick="selecionar_tudo(document.getElementById('form1:table1:_table'), 'selectRow'); return false;" style="left: 75px; top: 86px; position: absolute" text="Marcar Todos"/>
<webuijsf:hyperlink id="visualizarLink4" onClick="deselecionar_tudo(document.getElementById('form1:table1:_table'), 'selectRow'); return false;" style="left: 150px; top: 86px; position: absolute" text="Desmarcar Todos"/>