我有下一个完美运作的代码:
<p:inputText id="nombreProvedor_dinissan2" readonly="true" />
<p:overlayPanel for="nombreProvedor_dinissan2" style="width: 500px" widgetVar="proveedoresPnl_dinissan2" id="pnl" dynamic="true" >
<p:dataTable value="#{proveedoresMB.proveedores}"
var="proveedor"
emptyMessage="No hay proveedores disponibles"
paginator="true" rows="10"
rowsPerPageTemplate="5,10,15"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
selectionMode="single"
lazy="true"
rowKey="#{proveedor.iNit}" >
<p:ajax event="rowSelect" oncomplete="PF('proveedoresPnl_dinissan2').hide()" listener="#{proveedoresMB.seleccionarProveedor}" />
<p:column headerText="Nit" filterBy="#{proveedor.iNit}" filterMatchMode="contains" >
<p:outputLabel value="#{proveedor.iNit}" />
</p:column>
<p:column headerText="Nombre/Razón Social" filterBy="#{proveedor.sProveedor}" filterMatchMode="contains" >
<p:outputLabel value="#{proveedor.sProveedor}" />
</p:column>
</p:dataTable>
</p:overlayPanel>
但我需要相同的内部对话框:
<p:dialog header="Crear Servicio Público"
widgetVar="crearServicioPublicoWV"
id="crearServicioPublicoDlg"
modal="true">
<p:inputText id="nombreProvedor_dinissan3" readonly="true" />
<p:overlayPanel for="nombreProvedor_dinissan3" style="width: 500px" widgetVar="proveedoresPnl_dinissan3" dynamic="true" >
<p:dataTable value="#{proveedoresMB.proveedores}"
var="proveedor"
emptyMessage="No hay proveedores disponibles"
paginator="true" rows="10"
rowsPerPageTemplate="5,10,15"
paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
selectionMode="single"
lazy="true"
rowKey="#{proveedor.iNit}" >
<p:ajax event="rowSelect" oncomplete="PF('proveedoresPnl_dinissan3').hide()" listener="#{proveedoresMB.seleccionarProveedor}" />
<p:column headerText="Nit" filterBy="#{proveedor.iNit}" filterMatchMode="contains" >
<p:outputLabel value="#{proveedor.iNit}" />
</p:column>
<p:column headerText="Nombre/Razón Social" filterBy="#{proveedor.sProveedor}" filterMatchMode="contains" >
<p:outputLabel value="#{proveedor.sProveedor}" />
</p:column>
</p:dataTable>
</p:overlayPanel>
</p:dialog>
它是相同的代码,不同之处在于对话框内部。现在,过滤器无法在对话框中工作。当我过滤表格时,过滤器地图总是空的!
@Override
public List<ProveedorVO> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String,Object> filters) {
System.out.println("Filtros: " + filters);
for (String key : filters.keySet()) {
System.out.println( key + ":" + filters.get(key));
}
}
有什么想法吗?谢谢!
我正在使用PrimeFaces 5.2,JSF 2.1在JBoss EAP 6.1上运行
答案 0 :(得分:0)
我刚刚解决了同样的情况。 尝试将h:form标记添加到dataTable标记周围。