0

我有这样的情况:在文件form.xhtml中,我有用于过滤某些表格的表格,我在这里定义了按钮“过滤器”。

在文件 tableOne.xhtml、tableTwo.html、.. 我有 ID 为“filterTable”的 dataTable,我也将 form.xhtml 包含在此页面中。所有带有 dataTables 的页面都包含 form.xhtml 并且它们上的所有 dataTables 都具有相同的 id “filterTable”

我想做的是在使用ajax按下过滤器按钮后更新dataTable [#filterTable]。按钮由 <p:commandButton> 创建。如果表单和数据表定义在同一个文件中,我只需将 update="filterTable" 添加到我的命令 bytton 中。但是如果我将它添加到 form.xhtml 中定义的按钮,我会得到“找不到带有标识符的组件”错误。

是否可以从页面上包含的外部 xhtml 文件动态更新数据表?如果是,我该怎么做?

4

1 回答 1

1

例子:

测试.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>

包括.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>
于 2012-12-12T12:14:00.793 回答