Primefaces selectOneButton filter вне данных - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь разместить меню selectOneButton вне моей таблицы данных и заставить его принудительно применить фильтр (как если бы фильтр был заголовком фасета, как в демоверсии)

По существу:

  1. Выберите значение (true / false / null для обоих)
  2. Передайте это значение в функцию JS, которая затем принудительно отфильтрует столбец состояния

SelectOneButton передает значениезначение правильно

<script>
    function test(val){
        console.log(val);
        $("#allUsersForm\\:myTable\\:statusColumn\\:filter").val(val);
        $("#allUsersForm\\:myTable\\:statusColumn\\:filter").trigger('keyup');
    }
</script>

<h:form>
    <p:selectOneButton widgetVar="statusSelectWidget" 
        onchange="test(PF('statusSelectWidget').inputs.filter(':checked').val());">
        <f:selectItem itemLabel="All" itemValue="" />
        <f:selectItem itemLabel="A" itemValue="true" />
        <f:selectItem itemLabel="I" itemValue="false" />
    </p:selectOneButton>
</h:form>

<h:form id="allUsersForm">  
    <p:dataTable 
        id="myTable"
        var="user" 
        widgetVar="userListWidget"
        filteredValue="#{myController.filteredUsers}"
        value="#{myController.allUsers}">

        <p:column id="statusColumn" style="width:10%;" headerText="Status" sortBy="#{user.isActive}"
            filterBy="#{user.isActive}" filterMatchMode="equals" 
            filterStyle="display:none;">
            <f:facet name="filter">
                <p:selectOneButton style="display:none;" widgetVar="inTableStatusWidget" onchange="PF('userListWidget').filter()">
                    <f:converter converterId="javax.faces.Boolean" />
                    <f:selectItem itemLabel="All" itemValue="" />
                    <f:selectItem itemLabel="A" itemValue="true" />
                    <f:selectItem itemLabel="I" itemValue="false" />
                </p:selectOneButton>
            </f:facet>
            <h:outputText value="#{user.isActive ? 'Active' : 'Inactive'}" />
        </p:column>
    </p:dataTable>
</h:form>

Есть идеи?Я хочу избежать необходимости самому фильтровать или делать обратный вызов компоненту поддержки, если это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...