BootsFaces不会从Ajax渲染区域

时间:2018-11-25 17:51:39

标签: jsf bootsfaces

我试图根据表格中提供的值使用ajax(BootsFaces)渲染数据表。不幸的是,所需的部分没有渲染。我可以在网络选项卡中看到ajax请求正在执行,但是它什么也没做(Area不会渲染,并且此searchPartialBean.getSearchList()方法不会被调用)。以下是我的代码段。我的操作方式有任何问题吗?

<b:tab title="Search">
<h:form>
    <b:row>
        <b:column mediumScreen="7">
            <b:inputText placeholder="Telephone number" label="Telephone number"
                         value="#{searchPartialBean.telephoneNumber}"/>
            <b:inputText placeholder="First name" label="First Name"
                         value="#{searchPartialBean.firstName}"/>
            <b:inputText placeholder="Last name" label="Last Name"
                         value="#{searchPartialBean.lastName}"/>
            <b:commandButton look="primary" id="search-form-submit" value="Search"
                             update="serach-results-table"/>
        </b:column>
        <b:column mediumScreen="5">
            <b:alert severity="info" title="Info">
                This will contain the search help.
            </b:alert>
        </b:column>
    </b:row>
    <br />
    <b:panel id="serach-results-table">
        <b:dataTable rendered="#{searchPartialBean.valuesPresent}" value="#{searchPartialBean.getSearchList()}" var="patient">
            <b:dataTableColumn label="Date" value="#{patient.firstName}"/>
        </b:dataTable>
    </b:panel>
</h:form>
</b:tab>

1 个答案:

答案 0 :(得分:3)

您已将表格包装在选项卡中。这两个小部件都定义了一个名称空间,该名称空间又为其中的每个小部件的ID添加了前缀。可能就是问题所在。

我的第一种方法是添加一个冒号,以指示您正在内部名称空间中进行搜索:

update=":search-results-table"

如果这不起作用,则可以使用BootsFaces的递归搜索表达式:

update="**:search-results-table"

但是,我最喜欢的方法是使用CSS伪类,如下所示:

update="@(.search-results-table)"

<b:panel styleClass="search-results-table">