在树节点 select 后端 bean 正在获取 selected 数据但未更新右面板表单数据
On tree node select Back-end bean is getting selected data but not updating Right Panel form data
My Ui is like attached image
我面临的问题是在树节点选择上,我的后端 bean 正在获取选定数据但未使用选定节点数据更新右侧面板表单:
另一件事我注意到,在节点选择之后,如果我刷新页面,它会反映所选的节点数据
详情:
[1] 我在一个屏幕上工作,员工和公司被表示为一个树表,其中公司名称是父节点,员工是子节点。
employeeList.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:*
不是
但还有其他不清楚的地方,
另见
- 似乎是一个存在的问题甚至:refresh a <ui:define> in jsf
- How to ajax-refresh dynamic include content by navigation menu? (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()">
My Ui is like attached image
我面临的问题是在树节点选择上,我的后端 bean 正在获取选定数据但未使用选定节点数据更新右侧面板表单:
另一件事我注意到,在节点选择之后,如果我刷新页面,它会反映所选的节点数据
详情:
[1] 我在一个屏幕上工作,员工和公司被表示为一个树表,其中公司名称是父节点,员工是子节点。
employeeList.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:*
不是
但还有其他不清楚的地方,
另见
- 似乎是一个存在的问题甚至:refresh a <ui:define> in jsf
- How to ajax-refresh dynamic include content by navigation menu? (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()">