DataTable .filter() 和 clearFilters() 隐藏消息 p:messages 和 p:growl
DataTable .filter() and clearFilters() hides messages p:messages and p:growl
我使用时遇到的问题:
<p:growl id="growl" autoUpdate="true" />
或
<p:messages id="messages" autoUpdate="true" />
当我收到错误消息时,一旦我使用清除过滤器或重新过滤 primefaces 数据表,例如:
<p:commandButton value="do somthing and re-filter" oncomplete="PF('testTable').filter()"/>
<p:commandButton value="do somthing and clear filter" oncomplete="PF('testTable').clearFilters()"/>
<p:dataTable id="table" widgetVar="testTable" value="#{myMB.data}">
</p:dataTable>
消息被隐藏了,因为自动更新是真的,所以 ajax 调用过滤器被触发并且 return 没有消息所以这个调用清除消息,将是一个解决方案,如果我做 autoUpdate="false"
但我需要它,所以我不想将它设置为 false。
解决方案是将 ajax 过滤器事件添加到 p:datatable
:
<p:dataTable id="table" widgetVar="testTable" value="#{myMB.data}">
<p:ajax event="filter" ignoreAutoUpdate="true" />
{...}
</p:dataTable>
我使用时遇到的问题:
<p:growl id="growl" autoUpdate="true" />
或
<p:messages id="messages" autoUpdate="true" />
当我收到错误消息时,一旦我使用清除过滤器或重新过滤 primefaces 数据表,例如:
<p:commandButton value="do somthing and re-filter" oncomplete="PF('testTable').filter()"/>
<p:commandButton value="do somthing and clear filter" oncomplete="PF('testTable').clearFilters()"/>
<p:dataTable id="table" widgetVar="testTable" value="#{myMB.data}">
</p:dataTable>
消息被隐藏了,因为自动更新是真的,所以 ajax 调用过滤器被触发并且 return 没有消息所以这个调用清除消息,将是一个解决方案,如果我做 autoUpdate="false"
但我需要它,所以我不想将它设置为 false。
解决方案是将 ajax 过滤器事件添加到 p:datatable
:
<p:dataTable id="table" widgetVar="testTable" value="#{myMB.data}">
<p:ajax event="filter" ignoreAutoUpdate="true" />
{...}
</p:dataTable>