boa tarde pessoal, estou criando uma aplicação e em um determinado momento eu precisei criar uma coluna de uma dataTable dinamicamente atravéz de componente. Sou bem iniciante nesta parte de componentes.
O que ocorre é que a tabela é exibida porem a coluna que eu criei dinamicamente vem vazia, sem o inputText(que eu estou usando para testes, posteriormente esses inputs serão de outros tipos).
Segue o código do bean:
private UIColumn colunas;
private String filtroTeste;
private void criarComponentes() {
FacesContext context = FacesContext.getCurrentInstance();
ELContext elContext = context.getELContext();
Application app = context.getApplication();
ExpressionFactory expressionFactory = app.getExpressionFactory();
colunas = new UIColumn();
colunas.setId("colunaFiltros");
for (int x = 1; x <= listFiltros.size(); x++) {
CoreFiltro filtroTemp = listFiltros.get(x-1);
if(filtroTemp.getTxtAparencia().equals("Texto")){
HtmlInputText textoTemp = new HtmlInputText();
textoTemp.setId("FILTRO"+x);
ValueExpression ve = expressionFactory.createValueExpression(elContext,"#{selecionaRelatorioBean.filtroTeste}", String.class);
textoTemp.setValue("");
textoTemp.setStyleClass("inputTextJsf");
textoTemp.setValueExpression("value", ve);
colunas.getChildren().add(textoTemp);
}
}
}
public UIColumn getColunas() {
return colunas;
}
public void setColunas(UIColumn colunas) {
this.colunas = colunas;
}
public String getFiltroTeste() {
return filtroTeste;
}
public void setFiltroTeste(String filtroTeste) {
this.filtroTeste = filtroTeste;
}
código do xhtml:
<rich:dataTable id="tabelaFiltros" var="filtros" value="#{selecionaRelatorioBean.listFiltros}" style='width:300px'
rendered="#{not empty selecionaRelatorioBean.listFiltros}"
autosized="true" showWhenRendered="#{selecionaRelatorioBean.mostraFiltros}" >
<f:facet name="header">
<h:outputText value="Filtros" />
</f:facet>
<rich:column style='text-align:center;width:130px'>
<h:outputLabel value="#{filtros.txtRotulo}" style="align:left;"/>
</rich:column>
<rich:column binding="#{selecionaRelatorioBean.colunas}" style='width:170px' />
</rich:dataTable>
Novamente, sou iniciante nesse assunto, desculpem se for algum erro muito crasso.
Agradeço a ajuda!