Olá, pessoal.
Estou com um problema em minhas telas e acredito que seja devido a um rerender ou algum atributo de um commandButton do primefaces.
O problema é o seguinte:
Tenho uma dataTable que guarda os telefones dos clientes que irei cadastar ou que desejo editar já que é a mesma tela, mas o problema ocorre quando quero editar, então quando excluo por exemplo um telefone dessa dataTable, todos os campos do tipos inputText da tela ficam impossibilitados de receber ou editar valores, fica aparentemente com se estivesse no modo leitura. Já debuguei todo o fluxo e ocorre tudo bonitinho, por isso acredito que o problema seja com minha tela. Não é exibido nenhum erro no console o que dificulta ainda mais. Gostaria da ajuda de vocês pois não encontrei nada relacionado.
Segue o código da dataTable e da ação excluir que está no managedbean.
dataTable de telefones
[code]<p:dataTable id=“telefonesDataTable” var=“telefone"
value=”#{clienteCadastroBean.cliente.telefones}" rows="10"
emptyMessage=“Nenhum registro encontrado!”>
<f:facet name="header">
Telefones do Cliente
</f:facet>
<p:column headerText="Número">
<h:outputText value="#{telefone.numero}" />
</p:column>
<p:column headerText="Operadora">
<h:outputText
value="#{telefone.operadoraTelefonicaEnum.descricao}" />
</p:column>
<p:column headerText="Tipo">
<h:outputText value="#{telefone.tipoTelefoneEnum.descricao}" />
</p:column>
<p:column headerText="Excluir">
<div align="center">
<p:commandButton id="excluirTelefone" process="@this"
update="telefonesDataTable" icon="ui-icon-close"
style="width:16px; height:16px"
actionListener="#{clienteCadastroBean.excluirTelefone(telefone)}">
</p:commandButton>
</div>
</p:column>
</p:dataTable>[/code]
Método excluirTelefone que está no managedBean
public void excluirTelefone(Telefone telefoneParam) {
try {
this.cliente = this.clienteControlador.excluirTelefone(cliente,
telefoneParam);
} catch (TelefoneInexistenteException e) {
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, e
.getMessage(), null));
}
}