|
Bonjour, Je fais des testes sur le fonctionnement
du filtering et du sorting sur un absoluteContaineurList. J’ai déjà réussi
à faire appliquer un filtre et un trie sur un containeurList. Je veux
maintenant le faire sur un absoluteContaineurList. J’ai donc pris le même
code et changer les noms. La recherche fonctionne correctement. La pagination
aussi, mis à part le windowSize par defaut, mais j’ai déjà écrit un sujet
à ce propos. Par contre, le filtre et le trie ne fonctionnent pas. Y à t –
il quelque chose de différent à faire lorsque l’on veut appliquer un
filtre ou un trie sur un absoluteContainerList ? Merci! J’utilise Jahia 4.0.5 Voici mon code : <?xml version="1.0"
encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <%@ include
file="include/declarations.jsp"%> <%//traitement du filter (doit etre
avant toute déclaration selon le guide) // Our vector of container filter beans Vector cFilterBeans = new Vector(); ContainerFilterBean containerFilter =
null; String selNom =
request.getParameter("nom_filter"); if ( selNom == null ) { selNom = "Tous"; // By default,
select all Skills. } if ( !selNom.equals("Tous") ) { // Create a filter only if needed. // The filter is created with the field
name containerFilter = new
ContainerFilterBean("nom", jParams.getEntryLoadRequest()); // Then we add a comparison clause ,
here an EQUAL comparison.
containerFilter.addClause(ContainerFilterBean.COMP_EQUAL,selNom); } if ( containerFilter != null ) { // Add the Filter Bean to the vector cFilterBeans.add(containerFilter); } // reset the Container Filter Bean. containerFilter = null; // Now we create the Filters Handler, only
if there is at least one // available Filter Bean. if ( cFilterBeans.size()>0 ) { ContainerFilters containerFilters = new
ContainerFilters( "listeRessource", jParams,cFilterBeans); // Store the list of filters in the
request object. // It will be used later by the
container list loader. request.setAttribute(
"listeRessource_filter_handler", containerFilters); } //traitement du sorte String nomSort = request.getParameter("listeRessource_sort"); if ( nomSort == null ) { nomSort = "none"; // By
default, no Sort required. } String nomSortOrder =
request.getParameter("listeRessource_sort_order"); if ( nomSortOrder == null ) { nomSortOrder = "asc"; // By
default set to Ascending. } if ( !nomSort.equals("none") ) { ContainerSorterBean sorter = new
ContainerSorterBean("listeRessource",jParams,nomSort,false,jParams.getEntryLoadRequest()); if (
!nomSortOrder.equals("asc") ) { sorter.setDescOrdering(); } else { sorter.setAscOrdering(); } // Store the sort handler in the request
object. // It will be used later by the
container list loader.
request.setAttribute("listeRessource_sort_handler", sorter); } //traitement du search String searchQuery =
request.getParameter(JahiaSearchConstant.CLIST_SEARCHQUERY_INPUT_PREFIX+
"listeRessource"); if (searchQuery != null &&
!"".equals(searchQuery.trim()) ) { ContainerSearcher containerSearcher =
new ContainerSearcher("listeRessource",jParams,
searchQuery,jParams.getEntryLoadRequest());
request.setAttribute("listeRessource_search_handler",containerSearcher); } %> <%//declaration%> <content:declareContainerList
name="test" title="test"> <content:declareContainer> <content:declareField
name="nom" title="Nom affiché dans la liste"
type="SmallText"/> </content:declareContainer> </content:declareContainerList> <%//test pour le sort%> <div id="chercher"> <% /*Inversion du trie*/ String prochaineTrie =
"asc";
if(nomSortOrder.equals("asc")) { prochaineTrie =
"desc"; } %> <a
href=""
par nom (<%=prochaineTrie%>)</a> <content:jahiaPageForm
name="formTest"> <content:absoluteContainerList
name="listeRessource" id="listeRessource"
pageId="203" windowSize="5"> <input
type="text" name="<content:ctnListSQueryInputName/>"
value="<content:ctnListSQueryInputValue/>" /> <%//test pour le
filter%> <select
name="nom_filter"> <option
value="Tous">Tous</option> <option
value="fournier">fournier</option> <option
value="bouchard">bouchard</option> </select> <%//test pour le window
size%> <select class="text" name="listeRessource_windowsize" >
<option></option> <option
value="3">3</option> <option
value="5">5</option> <option
value="10">10</option> </select> <input
type="submit" value="go" /> <br /> <%//pagination%> <p>
[<content:cListPaginationFirstItemIndex /> -
<content:cListPaginationLastItemIndex />] of <content:cListPaginationTotalSize
/> <content:previousWindowButton
title="<<Prev" /> <content:cListPagination
nbStepPerPage="3">
<content:ifCListPaginationCurrentPage><b>
</content:ifCListPaginationCurrentPage>
<content:cListPaginationPreviousRangeOfPages
title=" .. "/>
<content:cListPaginationPageUrl/> 
<content:cListPaginationNextRangeOfPages
title=" .. "/>
<content:ifCListPaginationCurrentPage></b>
</content:ifCListPaginationCurrentPage> </content:cListPagination> <content:nextWindowButton
title="Next>>" /> </p>
<content:cListPaginationCurrentPageScrollingValue
valueOnly="false" /> <content:container
id="listeRessourceContainer"> <content:textField
name='nom' valueId='nom' diffActive='true' />, <content:textField
name='prenom' valueId='prenom' diffActive='true' /> <br /> </content:container> </content:absoluteContainerList> </content:jahiaPageForm> |
- filter, sort, et absoluteContainerList Jean-Francois Fournier
- RE: filter, sort, et absoluteContainerList Jean-Francois Fournier
