我正在使用PF 5.2作为网络应用。我想使用notificationBar来驻留一些数据输入,并使用commandButton来触发这些输入数据到辅助bean。因此我在commandBar中放了一个commandButton,但是actionListener没有调用backing bean方法。 CommandButton的定义ID为" filterBtn"。
.xhtml页面代码如下:
<h:form>
<p:notificationBar position="top" effect="slide" styleClass="top" widgetVar="bar" style="height:200px;">
<h:panelGrid columns="1">
<h:panelGrid id="filterGrid1" columns="4" >
<h:outputLabel id="vhclIdLbl" value="#{general.vehicleId}"/>
<p:inputText id="fMtsId" value="#{notifyBean.fMtsId}" style="width:200px"/>
<h:outputLabel id="serialNoLabel" value="#{general.serialNo}"/>
<p:inputText id="fSerialNo" value="#{notifyBean.fSerialNo}" style="width:200px"/>
<h:outputLabel id="brandLbl" value="#{general.brand}"/>
<p:selectCheckboxMenu id="fBrand" value="#{notifyBean.fBrands}" effect="slide" style="width:210px"
appendTo="@this">
<f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/>
<f:selectItems value="#{notifyBean.brandList}"/>
</p:selectCheckboxMenu>
<h:outputLabel id="modelLabel" value="#{general.model}"/>
<p:selectCheckboxMenu id="fModel" value="#{notifyBean.fModels}" effect="slide" style="width:210px"
appendTo="@this">
<f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/>
<f:selectItems value="#{notifyBean.modelList}"/>
</p:selectCheckboxMenu>
<h:outputLabel id="provLabel" value="#{general.province}"/>
<p:selectCheckboxMenu id="fProvince" value="#{notifyBean.fProvinces}" effect="slide" style="width:210px"
filter="true" filterMatchMode="startsWith" appendTo="@this">
<f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/>
<f:selectItems value="#{notifyBean.provinceList}"/>
</p:selectCheckboxMenu>
<h:outputLabel id="regionLabel" value="#{general.region}"/>
<p:selectCheckboxMenu id="fRegion" value="#{notifyBean.fRegions}" effect="slide" style="width:210px"
appendTo="@this">
<f:selectItem itemLabel="#{general.pleaseSelect}" itemValue=""/>
<f:selectItems value="#{notifyBean.regionList}"/>
</p:selectCheckboxMenu>
</h:panelGrid>
<p:commandButton id="filterBtn" value="Filter" actionListener="#{notifyBean.filterByProperties()}" icon="ui-icon-arrow-1-n"/>
<p:commandButton value="Hide" onclick="PF('bar').hide()" type="button" icon="ui-icon-arrow-1-n"/>
</h:panelGrid>
</p:notificationBar>
</h:form>
我知道这是一个简单的组件使用,但它不起作用。有什么帮助吗?
答案 0 :(得分:1)
不应将notifyBar嵌入表单中。只需交换notificationBar和表单标签,表单就在通知栏中。
<p:notificationBar position="top" effect="slide" styleClass="top" widgetVar="bar">
<h:form>
<p:commandButton value="yes" actionListener="#{backingBean.onDeleteButton}" onclick="PF('bar').hide()" />
<p:commandButton value="no" onclick="PF('bar').hide()" />
</h:form>
</p:notificationBar>