如何在 JSF 中更新 "rendered" 属性
How to just update "rendered" property in JSF
我有一份文件清单,我需要一次全部更新。
我做了这样的事情:
<ui:repeat id="r_list" value="#{tareaController.controlador.documentosIndexar}" var="documentos" >
其中 documentosIndexar
是文档列表。它可以很好地显示所有文档及其属性。
我有两个 panelGrid
,一个是文档的查看者,另一个是它的信息。
在信息的底部有文档列表。
我需要填写文档的信息,然后 select 在不丢失前一个的情况下再填写一个。
我正在尝试更新整个 ui:repeat
并且它呈现下一个文档及其信息正常,但前一个文档的信息丢失了。
我也试过做:
<ui:repeat id="r_list">
<p:panelGrid id="pg_document" rendered="#{tareaController.controlador.documentoSeleccionado.id eq documentos.id}">
<---- Document components here ---->
<p:ajax event="rowSelect" update=":f_tarea:r_list:pg_document" listener="#{tareaController.controlador.reemplazarLista(tareaController.documentoSeleccionado)}"/>
</p:panelGrid>
</ui:repeat>
我所有的组件,嗯,我的页面位于一个名为 f_tarea
的表单中,该表单来自其模板。
当我执行上述操作时,我更新了列表中的 panelGrid
,但只有那个,并且渲染条件中的变量发生了变化,因此所有 panelGrid
都消失了。
基本上,我想做的是只更新 ui:repeat 内所有 panelGrids 的渲染条件,这样一个隐藏另一个显示而不会丢失前一个的信息。
好的。对不起,我是一个完全愚蠢的人。
我尝试做一些以前没有做过的事情:下载 PrimeFaces 手册。在 AjaxBehavior 部分,有 "process" 部分处理部分请求中的组件。
我只是通过这样做来修复它:
<p:ajax event="rowSelect" process=":f_tarea:r_list:pg_documento" update=":f_tarea:pg_doc" listener="#{tareaController.controlador.reemplazarLista(tareaController.documentoSeleccionado)}"/>
我不会删除这个问题,以防它对以后的人有帮助。
我有一份文件清单,我需要一次全部更新。 我做了这样的事情:
<ui:repeat id="r_list" value="#{tareaController.controlador.documentosIndexar}" var="documentos" >
其中 documentosIndexar
是文档列表。它可以很好地显示所有文档及其属性。
我有两个 panelGrid
,一个是文档的查看者,另一个是它的信息。
在信息的底部有文档列表。
我需要填写文档的信息,然后 select 在不丢失前一个的情况下再填写一个。
我正在尝试更新整个 ui:repeat
并且它呈现下一个文档及其信息正常,但前一个文档的信息丢失了。
我也试过做:
<ui:repeat id="r_list">
<p:panelGrid id="pg_document" rendered="#{tareaController.controlador.documentoSeleccionado.id eq documentos.id}">
<---- Document components here ---->
<p:ajax event="rowSelect" update=":f_tarea:r_list:pg_document" listener="#{tareaController.controlador.reemplazarLista(tareaController.documentoSeleccionado)}"/>
</p:panelGrid>
</ui:repeat>
我所有的组件,嗯,我的页面位于一个名为 f_tarea
的表单中,该表单来自其模板。
当我执行上述操作时,我更新了列表中的 panelGrid
,但只有那个,并且渲染条件中的变量发生了变化,因此所有 panelGrid
都消失了。
基本上,我想做的是只更新 ui:repeat 内所有 panelGrids 的渲染条件,这样一个隐藏另一个显示而不会丢失前一个的信息。
好的。对不起,我是一个完全愚蠢的人。 我尝试做一些以前没有做过的事情:下载 PrimeFaces 手册。在 AjaxBehavior 部分,有 "process" 部分处理部分请求中的组件。 我只是通过这样做来修复它:
<p:ajax event="rowSelect" process=":f_tarea:r_list:pg_documento" update=":f_tarea:pg_doc" listener="#{tareaController.controlador.reemplazarLista(tareaController.documentoSeleccionado)}"/>
我不会删除这个问题,以防它对以后的人有帮助。