We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Ajax Refresh et QueryHandler

Ritchie Nithoo · on 10/1/19 at 2:56 PM

Bonjour , 

Dans le cadre du redéveloppement du gabarit de recherche, je cherche à implémenter un filtre (à l'instar du filtre sur les dates (qh.getDateSinceInt()). 
En m'inspirant des gabarit déjà présents , j'ai donc mis en place ce champs dans la page de recherche : 

<div>
<jalios:field name="dateSince" value='<%= qh.getBeginDate() %>'
resource="field-light">
<jalios:control type='<%= ControlType.DATE %>'
settings='<%= new DateSettings().displayDateOnly().onChange("ajax-refresh") %>' />
</jalios:field>
</div>

Malheureusement, la date choisie ne semble pas influer sur le queryHandler.

Pour informations je me suis inspiré d'une partie du gabarit fourni par défaut qui est le suivant : 

<div>
<jalios:field name="dateSince" resource="field-light" value="<%= dsdDateSince %>">
<jalios:control settings='<%=
new EnumerateSettings().radio()
.enumValues(values)
.enumLabels(labels)
.dataAttribute("jalios-action", "ajax-refresh") %>' />
</jalios:field>
</div>

J'ai bien tenté en utilisant la méthode dataAttribute mais mon html généré ne semble pas prendre en compte le ajax-refresh. 

Auriez-vous des idées ? 

En vous remerciant par avance

4 pts
Kevin Bransard · on 10/2/19 at 12:20 PM

Essayez en rajoutant l'attribut jalios-event: change comme l'exemple suivant : 

      <jalios:control settings='<%= 
      new EnumerateSettings()
      .dataAttribute("jalios-event", "change")
      .dataAttribute("jalios-action", "ajax-refresh")
      .select()
      .enumValues(dateTypeValues)
      .enumLabels(dateTypeLabels) %>' />
    </jalios:field>  
    
#1

Merci pour votre réponse, 

J'ai réussi a faire fonctionner mon filtre de la manière suivante : 

<jalios:field name="beginDateStr" value='<%= qh.getBeginDate() %>'
resource="field-light">
<jalios:control type='<%= ControlType.DATE %>'
settings='<%= new DateSettings()
.displayDateOnly()
.onChange("ajax-refresh")
.placeholder("Begin date") %>' />
</jalios:field>

Il fallait fournir le bon "name" au tag <jalios:field> afin que la valeur de la date sois prise en compte. 

Ritchie Nithoo · on 10/2/19 at 3:51 PM
0 pts