Как можно отфильтровать таблицу данных Icefaces через JavaScript? - PullRequest
0 голосов
/ 25 апреля 2019

a имеет с , у которого есть фильтр (icefaces генерирует для записи значения фильтра)

     <ace:dataTable id="info" value="#{mybean.data}" var="item" >
        <ace:column id="customerID" headerText="ID" filterBy="#{item.customerID}" filterMatchMode="contains">
              <ice:outputText styleClass="center" value="#{item.customerID}"/>
        </ace:column>
     ...
     </ace:dataTable>

У меня есть функция javascript, которая записывает значение для фильтрации, но не запускает функцию фильтрации, то есть показывает только те строки, которые соответствуют значению фильтра. Это работает, только если я что-то напишу в поле , где я замечаю, что icefaces устанавливает Ajax-связь с сервером. Я догадался, что это вызвано событием onchange на , поэтому я попытался сгенерировать его в функции javascript.

        function triggerFiltering(customerID) {   
            document.getElementById('form:info:customerID_filter').value = customerID;
            if ("createEvent" in document) {
                var evt = document.createEvent("HTMLEvents");
                evt.initEvent("change", false, true);
                document.getElementById('form:info:customerID_filter').dispatchEvent(evt);
            }
            else
                document.getElementById('form:info:customerID_filter').fireEvent("onchange");
        }

Я вижу, что он генерирует Ajax-связь, но таблица все еще не фильтрует свои строки. Как можно фильтровать через JavaScript? Я использую icefaces 3.3.0 поверх mojarra jsf 2.1.18

...