Mam rich:extendedDataTable
i używam filtrowania kolumn. Chcę, aby filtr został uruchomiony, gdy użytkownik wprowadzi klucz "intro", ale w javascript nie ma takiego zdarzenia.Filtry Richfaces Filtr: Jak wywołać zdarzenie w kluczu intro
Chcę to zrobić, ponieważ jeśli używam zdarzeń takich jak onkeyup
, otrzymuję zbyt wiele żądań i mam z tego powodu problemy. Używam richfaces 3.3.0GA i facelets.
Jest to komponent:
<ui:composition>
<a4j:form ajaxSingle="true" requestDelay="700">
<rich:extendedDataTable id="tablePatients" value="#{user.patientsTab.patients}" var="patient" rows="20"
onRowMouseOver="this.style.backgroundColor='#F1F1F1'" onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'">
<f:facet name="header">
<h:outputText value="Patient List" />
</f:facet>
<rich:column label="#{msg.id}">
<f:facet name="header">
<h:outputText value="Id" />
</f:facet>
<h:outputText value="#{patient.id}" id="patientId" />
</rich:column>
<rich:column label="#{msg.name}" sortable="true" filterBy="#{patient.profile.name}" filterEvent="onkeyup">
<f:facet name="header">
<h:outputText value="Name" />
</f:facet>
<h:outputText value="#{patient.profile.name}" id="name" style="#{patient.isUnrated? 'font-weight:bold':''}" />
</rich:column >
<rich:column label="#{msg.lastexamination}" sortable="true">
<f:facet name="header">
<h:outputText value="Last Examination" />
</f:facet>
<h:outputText value="#{patient.lastExaminationDate}" style="#{patient.isUnrated? 'font-weight:bold':''}" />
</rich:column>
<rich:column label="#{msg.action}">
<f:facet name="header">
<h:outputText value="#{msg.action}"></h:outputText></f:facet>
<a4j:commandLink id="editlink" oncomplete="#{rich:component('patientPanel')}.show()" reRender="a4jPatientPanel">
<h:graphicImage value="/images/icons/PNG-24/Add.png" style="border:0" />
<f:setPropertyActionListener value="#{patient}" target="#{user.patientsTab.patientPanel.patient}" />
</a4j:commandLink>
<rich:toolTip for="editlink" value="Edit" />
</rich:column>
<f:facet name="footer">
<rich:datascroller renderIfSinglePage="false" maxPages="5" />
</f:facet>
</rich:extendedDataTable>
</a4j:form>
<ui:include src="/pages/panels/patientPanel.xhtml" />
</ui:composition>
Mmmm Próbowałem go i to nie działa. Wciśnij enter i nic się nie dzieje. Kliknięcie poza polem wprowadzania (onblur) powoduje filtrowanie. Próbowałem już z extendedDataTable i z DataTable. Ten sam wynik. – pakore
Czy istnieje sposób na opóźnienie żądania? najwyraźniej "requestDelay" w "a4j: form" nie opóźnia ... Dziękuję za odpowiedź. – pakore
Not-of-the-box. Ale może być jakiś obejście. Pomyślę o tym. – Bozho