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