我有这样的情况: 在文件form.xhtml我有用于过滤一些表格的表格,我给了这里定义的按钮“过滤器”。
在文件tableOne.xhtml,tableTwo.html,..我有一个id为“filterTable”的dataTable,我还在这个页面中包含了form.xhtml。所有带有dataTables的页面都包含form.xhtml,其上的所有dataTable都具有相同的id“filterTable”
我想要做的是在使用ajax按下过滤器按钮后更新dataTable [#filterTable]。按钮由< p:commandButton>创建。如果form和datatable在同一个文件中定义,我只需要将update =“filterTable”添加到我的命令bytton。但如果我将它添加到form.xhtml中定义的按钮,我会得到“无法找到带标识符的组件”错误。
是否可以从页面上包含的xhtml文件外动态更新dataTable?如果是的话,我该怎么做?
答案 0 :(得分:1)
示例:
test.xhtml:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form id="dtForm">
<p:dataTable id="dataTable" />
</h:form>
<ui:include src="/include.xhtml" />
</h:body>
</html>
include.xhtml:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<h:body>
<h:form>
<p:commandButton value="button" update=":dtForm" />
</h:form>
</h:body>
</html>