在树节点上,选择后端 Bean 正在获取所选数据,但不更新右面板表单数据



我的 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()">

相关内容

  • 没有找到相关文章

最新更新