Srs tenhom um dataTable com duas colunas. Uma coluna nome e uma coluna com um campo <h:selectBooleanCheckbox onde o usuário ira marcar um ou vários nomes.
Para preencher esse datable eu carrego uma coleção de um bean que tem os atributos nome e idNome.
Meu problema é eu monto o datatable com vários nomes e depois eu recebeu de um outro lugar um array de Integer com os Ids de usuários que devem aparecer com os checkboxs marcados como true .
Minha duvida é como no managed bean eu posso referenciar e identificar os checkboxes do datatable e marcar alguns checkbox como true e outros false ?
Hoje eu faço um esquema que depois que eu carrego o datatable eu executo uma função javascript que pega um aaray de inteiros e varre o datatable através do getElementByID e uso a propriedade checked = true e false. Entretanto acho qhe deve haver uma forma melhor através dos próprios recursos do JSF para fazer essa tarefa.
Alguém poderia me dar uma dica ou orientaçãode como fazer melhor isso ?
>
Veja que temos um mapSelecionados para marcar quem foi selecionado e um ajax support para no evento do onclick do checkbox marcar o ID através do método selecionarRegistro que pode ficar vaziou ou efetuar qualquer operação desejada.
No bean temos:
declaração do mapa com seus getters e setters:
private Map<Long, Boolean> mapSelecionados = new HashMap();
selecionarRegistro ficando vazio, a não ser que alguma operação seja demandada, se não a sua única função aqui é fazer um “request” para o bean, fazendo o preenchimento automático do mapa.
/**
* Chamado quando qualquer item é selecionado na grid
*/
public void selecionarRegistro() {
}
Depois disso, é só processar as informações no mapa, dár um getValue retornando que foi selecionado (igual a true) e fazer o que for necessário. Qualquer dúvida poste aí.