我试图根据表格中提供的值使用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>
答案 0 :(得分:3)
您已将表格包装在选项卡中。这两个小部件都定义了一个名称空间,该名称空间又为其中的每个小部件的ID添加了前缀。可能就是问题所在。
我的第一种方法是添加一个冒号,以指示您正在内部名称空间中进行搜索:
update=":search-results-table"
如果这不起作用,则可以使用BootsFaces的递归搜索表达式:
update="**:search-results-table"
但是,我最喜欢的方法是使用CSS伪类,如下所示:
update="@(.search-results-table)"
<b:panel styleClass="search-results-table">