【问题标题】:Datatable's filter not work when datatable inside overlaypanel that also inside dialog (primefaces)当覆盖面板内的数据表也在对话框内(primefaces)时,数据表的过滤器不起作用
【发布时间】:2015-09-26 15:10:35
【问题描述】:

我有下一个完美运行的代码:

    <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>

但我需要相同的 insede 对话框:

<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));
    }
}

有什么想法吗?谢谢!

我正在使用在 JBoss EAP 6.1 上运行的 PrimeFaces 5.2、JSF 2.1

【问题讨论】:

  • 所以你说如果你去掉overlayPanel就可以了?或者,如果您删除了它适用的 overlayPanel 的动态属性?或者,如果您删除了对话框的 modal 属性,它会起作用吗?或者,如果您删除分页,它会起作用吗?请创建一个 mcve ...并尝试在对话框中放置一个表单是否有帮助(不使其嵌套)
  • 尝试在您的对话框中添加 appendTo="@(body)" 并在您的 overlayPanel 上分别添加 appendToBody="true"。

标签: jsf jsf-2 primefaces datatable lazy-loading


【解决方案1】:

我刚刚解决了同样的情况。 尝试在 dataTable 标签周围添加 h:form 标签。

【讨论】:

    猜你喜欢
    • 2014-07-07
    • 2014-08-09
    • 2014-12-24
    • 2013-03-07
    • 2014-03-09
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    相关资源
    最近更新 更多