如何完成将过滤器应用于数据表primefaces

时间:2015-03-27 13:26:16

标签: jsf primefaces datatable

我需要在加载页面之前将FilterValue“Albacete”应用于数据表。 我尝试使用onload命令按钮,但这不起作用。 有什么想法吗?

<p:dataTable id="datalist" value="#{delegacionesController.items}" var="item" widgetVar="itemtable"
                         emptyMessage="No cars found with given criteria"
                         filteredValue="#{delegacionesController.filteredDelegaciones}"
                         selectionMode="single" selection="#{delegacionesController.selected}"

                         rowKey="#{item.delegacion}"
                         rows="100">

    <p:commandButton oncomplete="preFilter"/>
    <p:ajax event="rowSelect"   update="createButton viewButton editButton deleteButton"/>
    <p:ajax event="rowUnselect" update="createButton viewButton editButton deleteButton"/>
    <f:facet name="header">
        <p:outputPanel>
            <h:outputText value="Search all fields:" />
            <p:inputText id="globalFilter" onkeyup="PF('itemtable').filter()" 
                style="width:150px" placeholder="Enter keyword" />
        </p:outputPanel>
    </f:facet>
    <p:column id="preFilter" filterBy="#{item.delegacion}"  rendered="false" filterValue="Albacete">
    </p:column>

1 个答案:

答案 0 :(得分:2)

您可以按如下方式解决此问题

    <p:dataTable id="datalist" value="#{delegacionesController.items}" var="item" widgetVar="itemtable"
                             emptyMessage="No cars found with given criteria"
                             filteredValue="#{delegacionesController.filteredDelegaciones}"
                             selectionMode="single" selection="#{delegacionesController.selected}"

                             rowKey="#{item.delegacion}"
                             rows="100"
                             >
                    >
                    <p:commandButton oncomplete="preFilter"/>
                    <p:ajax event="rowSelect"   update="createButton viewButton editButton deleteButton"/>
                    <p:ajax event="rowUnselect" update="createButton viewButton editButton deleteButton"/>
                    <f:facet name="header">
                        <p:outputPanel>
                            <h:outputText value="Search all fields:" />
                            <p:inputText id="globalFilter" onkeyup="PF('itemtable').filter()" style="width:150px" placeholder="Enter keyword" />
                        </p:outputPanel>
                    </f:facet>

<script  type="text/javascript" target="body">
                jQuery(document).ready(function() {
                    jQuery('input[id*="itemtable"]').val('Albacete');
                    PF('dataWidget').filter();
                });
            </script> 
</p:datatable>

如果它将使用不同的过程

<p:column id="preFilter" filterBy="#{item.delegacion}"  rendered="false" filterValue="Albacete">
                </p:column>

你需要解决如下

<script  type="text/javascript" target="body">
                jQuery(document).ready(function() {
                    jQuery('input[id*="preFilter"]').val('Albacete');
                    PF('dataWidget').filter();
                });
            </script>