jsf - 如何在primefaces中的任何形式之外更新tabView
问题描述
我正在尝试更新任何表单之外的 tabView,因为每个选项卡内部都有自己的表单,但我还想在创建父对象之前隐藏所有 tabView。
它仅在第一次按预期加载表单时起作用,但一旦加载,我就无法刷新 tabView。
我应该添加嵌入式表单还是重新加载整个页面?
表单.xhtml
<h:form id="frmWork">
...
<p:commandButton id="btnEdit" value="#{msgs.edit}"
styleClass="Fright"
actionListener="#{workBean.edit()}"
update="frmWork tabView"
rendered="#{!workBean.editable}"/>
</h:form>
<p:tabView id="tabView" activeIndex="#{workBean.tabIndex}"
rendered="#{!workBean.editable and workBean.work.id ne null}">
<p:ajax event="tabChange" listener="#{workBean.onTabChange}"/>
<p:tab id="tabDelNotes" title="#{msgs.deliverynotes}">
<ui:include src="work_delNotes.xhtml" />
</p:tab>
<p:tab id="tabOrders" title="#{msgs.ord_orders}">
<ui:include src="work_orders.xhtml" />
</p:tab>
<p:tab id="tabTasks" title="#{msgs.tasks}">
<ui:include src="work_tasks.xhtml" />
</p:tab>
<p:tab id="tabContacts" title="#{msgs.contacts}">
<ui:include src="work_contacts.xhtml"/>
</p:tab>
</p:tabView>
解决方案
如果rendered
您的 tabView 中的 评估为 false,则 tabView 不会呈现并且不能成为update=
. 你可以<h:panelGroup id="updater"
在你的 tabView 周围放一个并使用update="updater"
推荐阅读
- css - 如何摆脱在移动视图中单击的元素周围单击时出现的蓝色框?
- python - 使用 python 进行边际似然优化
- python - 将列表中的数据拆分到自己的列
- google-cloud-platform - Cloud Data Fusion 定价 - 开发与执行
- php - PHP用回声修复未定义的错误?但不起作用
- javascript - 使用 Javascript/jQuery 从 CDATA 渲染 HTML
- python - 使用 Dask 从单个固定宽度文件中获取列并放入新 CSV 文件的最快方法
- c# - 代码重构以删除重复代码
- c# - Swig:如何在回调中获取字符串
- java - 如何将两个表记录映射到java对象列表