BootsFaces 不渲染来自 ajax 的区域
BootsFaces does not render area from ajax
我正在尝试根据表单中提供的值使用 ajax (BootsFaces) 呈现数据 table。不幸的是,所需的部分没有呈现。我可以在网络选项卡中看到 ajax 请求,但它没有执行任何操作(区域不呈现并且此 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>
您已将表单包装在选项卡中。两个小部件都定义了一个命名空间,该命名空间又为其中每个小部件的 ID 添加了一个前缀。可能就是这个问题。
我的第一个方法是添加一个冒号以指示您正在内部命名空间中搜索:
update=":search-results-table"
如果不行,可以使用BootsFaces的递归搜索表达式:
update="**:search-results-table"
但是,我最喜欢的方法是使用 CSS 伪 class,如下所示:
update="@(.search-results-table)"
<b:panel styleClass="search-results-table">
我正在尝试根据表单中提供的值使用 ajax (BootsFaces) 呈现数据 table。不幸的是,所需的部分没有呈现。我可以在网络选项卡中看到 ajax 请求,但它没有执行任何操作(区域不呈现并且此 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>
您已将表单包装在选项卡中。两个小部件都定义了一个命名空间,该命名空间又为其中每个小部件的 ID 添加了一个前缀。可能就是这个问题。
我的第一个方法是添加一个冒号以指示您正在内部命名空间中搜索:
update=":search-results-table"
如果不行,可以使用BootsFaces的递归搜索表达式:
update="**:search-results-table"
但是,我最喜欢的方法是使用 CSS 伪 class,如下所示:
update="@(.search-results-table)"
<b:panel styleClass="search-results-table">