Buenas,
Estou tentando criar um datatable editável, com inputs criados em tempo de execução pelo bean. Ele até cria os campos no datatable, mas aparentemente os valores não são atualizados ao submeter o formulário…
Segue o código jsf:
<h:form id="formTest" >
<h:panelGroup binding="#{backingAlgoritmo.panelGroup}" />
</h:form>
Código do bean:
public HtmlPanelGroup getPanelGroup() {
panelGroup = new HtmlPanelGroup();
panelGroup.getChildren().add(getDataTableCromossomos());
HtmlCommandButton saveButton = new HtmlCommandButton();
saveButton.setId("save");
saveButton.setValue("Save");
saveButton.setActionExpression(
createActionExpression("#{algGeneticoBean.executa()}", null));
panelGroup.getChildren().add(saveButton);
return panelGroup;
}
public DataTable getDataTableCromossomos() {
dataTableCromossomos = new DataTable();
dataTableCromossomos.setValueExpression("value", createValueExpression("#{algGeneticoBean.algoritmo.populacaoInicial.cromossomos}", List.class));
dataTableCromossomos.setVar("c");
if (algGeneticoBean != null) {
int cont = 0;
for (int i = 0; i < algGeneticoBean.getQtdGenes(); i++) {
Column column = new Column();
dataTableCromossomos.getChildren().add(column);
HtmlInputText input = new HtmlInputText();
input.setValueExpression("value", createValueExpression("#{c.genes.get(" + i + ").valorGeneString}", String.class));
input.setRequired(true);
input.setSize(2);
System.out.println("#{c.genes.get(" + i + ").valorGene}");
column.getChildren().add(input);
}
}
return dataTableCromossomos;
}
PS.: tentei criar somente um input para uma string no bean, fora do datatable, mas nada também…
Estou usando primefaces 3.3.1…
Alguém tem alguma ideia?
Muito obrigado