primefaces component id not found in update

31 Views Asked by At

this is my form

<form id=frmCalculation>
<p:messages id="msgs" showDetail="true" showSummary="false" redisplay="false" closable="true" escape="false" />
<panel>
<panelgrid id=statpanel>
</panelgrid>
<datatable id=dtEnrich>
<p:ajax event="filter" listener="#{enrichmentView.doFilter}" update="@this " />
<p:column filterby... filterMatchMode...>
...
</datatable>
</panel>
</form> 

In statpanel there are several outputText controls, which i want to update every time, when something is filtered in the datagrid. In enrichmentview.doFilter I setup the new values for those fields, which are bound to the outputText controls.

But in ajax tag, I cannot figure out what should be the component id to put in order to update the outputText controls, and of course the datatable to update it due to the filters.

I tried with "statpanel", ":statpanel", ":frmCalculation:statpanel". every time i have an error that statpanel control is not found. Or it is also possible that I want to display a message in msgs, but it also doesn't work.

when I put @form or "frmCalculation", the outputTexts are updated, but then the datatable rows/columns are collapsed (i can only see the cell values in one long string)

1

There are 1 best solutions below

2
pillesoft On

Finally, the solution was to add widgetVar to the panel tag (parent of panelGrid).

<p:panel widgetVar="widget_pnl">
  <p:panelGrid id="statpanel" columns="3" layout="grid">

Then in update I could use

<p:ajax event="filter" listener="#{enrichmentView.doFilter}" update="@this @widgetVar(widget_pnl):statpanel " />