私は内部に2つのdataTableを持つdataTableを作成しています:)。PrimeFaces dataTableはバインディング属性が存在する場合にレンダリングしません
今回は、最初のdataTableをラップするh:panelGroupでバインディング属性を使用しようとするとレンダリングする際に問題が発生します。 私はバインディングを使用して、panelGroupをリフレッシュするのを手伝っています。これは、BalusCのようにthis questionに記載されています。バインディング属性を削除すると、dataTableは通常どおりレンダリングされますが、もちろんdataTables内にはf:ajaxタグは表示されません。しかし、成功せず、のdataTable:Pの内側にあるのDataTable:私はすでに時間を削除しようとした
<ui:component>
<h:panelGroup>
<h:panelGroup layout="block;" id="#{id}"
binding="#{painelTabelaContatos}" rendered="true">
<p:dataTable id="tabela#{id}"
value="#{modeloTabelaContatos.listaDeContatos}" var="contato"
selectionMode="single"
rowSelectListener="#{controladorTabelaContatos.processarSelecaoLinha}"
rowUnselectListener="#{controladorTabelaContatos.processarDeselecaoLinha}"
selection="#{modeloTabelaContatos.contatoSelecionado}">
<p:column headerText="Contatos">
<hrgi:editableText style="width:100%" value="#{contato.descricao}" />
</p:column>
<p:column headerText="Telefones">
<h:dataTable value="#{contato.telefones}" var="telefone">
<h:column>
<h:inputText value="#{telefone}" />
</h:column>
<h:column>
<h:graphicImage library="img" name="default_trash.png"
style="cursor:pointer;">
<f:ajax event="click" render=":#{painelTabelaContatos.clientId}"
listener="#{controladorTabelaContatos.removerTelefone(contato, telefone)}" />
</h:graphicImage>
</h:column>
</h:dataTable>
</p:column>
<p:column headerText="e-mails">
<h:dataTable value="#{contato.emails}" var="email">
<h:column>
<h:inputText value="#{email}" />
</h:column>
<h:column>
<h:graphicImage library="img" name="default_trash.png"
style="cursor:pointer;">
<f:ajax event="click" render=":#{painelTabelaContatos.clientId}"
listener="#{controladorTabelaContatos.removerEmail(contato, email)}" />
</h:graphicImage>
</h:column>
</h:dataTable>
</p:column>
<p:column>
<h:graphicImage library="img" name="default_trash.png"
style="cursor:pointer;">
<f:ajax render=":#{painelTabelaContatos.clientId}" event="click"
listener="#{controladorTabelaContatos.removerContato(contato)}" />
</h:graphicImage>
</p:column>
</p:dataTable>
</h:panelGroup>
<h:panelGroup layout="block">
<p:commandButton value="ADICIONAR CONTATO" update="#{id}"
immediate="true"
action="#{controladorTabelaContatos.adicionarContato}" />
<p:commandButton value="ADICIONAR TELEFONE" update="#{id}"
immediate="true"
action="#{controladorTabelaContatos.adicionarTelefone}" />
<p:commandButton value="ADICIONAR E-MAIL" update="#{id}"
immediate="true"
action="#{controladorTabelaContatos.adicionarEmail}" />
</h:panelGroup>
</h:panelGroup>
</ui:component>
:ここ
は、XHTMLです。 このコンポーネントはPrimeFacesタブのコンテンツに過ぎず、このタブはPrimeFacesダイアログ内にあります。誰かが私になぜこのことが起こっているのか説明できますか? 私はそれが解決策を見つけることは簡単だった後、私は2つの異なるページに、このコンポーネントを呼び出すために... 問題が発生し、エラーの原因を見つけた
あなたはそれがうまくいったと言いましたか?唯一の違いは、静的IDの代わりに動的IDを ''に割り当てることです。おそらくIDは、あなたがajaxリクエストを送信したときにもう存在しないソースから来ているでしょうか? –
BalusC
私のせいでした。私は間違っていた。 – brevleq
さて、あなたは答えとしてそれを投稿しました。 – BalusC