我的 Ui 就像附加的图像 我面临的问题是在树节点选择上,我的后端 Bean 正在获取选定的数据,但没有使用选定的节点数据更新右侧面板表单:
另一件事我注意到,在节点选择后,如果我进行页面刷新,它会反映选定的节点数据
详细信息:
[1] 我正在处理一个屏幕,其中员工和公司表示为树表,其中公司名称为父级,员工是子节点。
员工名单.xhtml:
<h:form id="employeeListForm">
<p:treeTable id="empTree" widgetVar="empTree"
value="#{employee.rootEmployeeNode}" var="item"
selection="#{employee.selectedEmployeeNode}"
selectionMode="single" rendered="#{employee.filteredEmployees== null}">
<p:ajax event="select" listener="#{employee.onEmployeeNodeSelect}"
update=":employeeEditForm">
</p:ajax>
<p:column headerText="#{o:translate('Name')}" priority="1">
<h:outputText value="#{item.name}" title="#{item.name}"></h:outputText>
</p:column>
<p:column headerText="#{o:translate('Description')}" priority="2">
<h:outputText value="#{item.description}" title="#{item.description}"></h:outputText>
</p:column>
</p:treeTable>
<h:form>
在选择TreeNode时,我在右侧面板中显示员工详细信息,即employeeEditForm,而我的employeeEditForm.xhtml是:
<ui:composition ...>
<h:form id="employeeEditForm">
<!-- form components to display employee details -->
</h:form>
</ui:composition>
注意:请帮助我了解如何处理此问题。
引用ui:define
的名称
<ui:define name="mainContent">
<ui:include src="..." />
</ui:define>
在p:ajax update
属性中
<p:ajax event="select" listener="..." update=":mainContent,:employeeEditForm" />
这不是它的工作方式(在开发模式下,您很可能会遇到错误(。您应该更新具有id
属性并且是 jsf 组件的内容(其中ui:*
组件不是
但还有其他事情不清楚,
参见
- 似乎甚至是一个存在的问题:在 jsf 中刷新一个<ui:define>
- 如何通过导航菜单刷新动态包含内容?(JSF SPA(
我已经使用javascript做了一个临时修复,我创建了一个函数来重新加载我的employeeEditForm:
<script type="text/javascript">
function updateEmployeeEditForm() {
$( "#employeeEditForm" ).load(window.location.href + " #employeeEditForm" );
}
</script>
我调用的这个函数成功像:
<p:ajax event="select" listener="#{employee.onEmployeeNodeSelect}" update=":employeeEditForm" onsuccess="updateEmployeeEditForm()">