Lookup (jqm1000)

De Wiki1000
Version du 7 avril 2014 à 14:45 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Le support des listes de sélection permet d'alimenter un zone de sélection par le résultat d'une interrogation du serveur.

Sommaire

Champ de sélection

L'usage d'une liste de sélection ce fait dans le cadre d'un formulaire de saisie encapsulé dans une page.

Dans cette page vous gérez des champs de saisie, dans le code html de la page ajoutez un champ select pour gérer la sélection :

  <div data-role="content">
    ....
     <div data-role="fieldcontain">
       <select name="field_motif" class="lookup" data-lookup="/lookupMotifs" id="field_motif" ><option>select a motif</option></select>
    </div>  
  </div>

Le champ doit avoir la classe lookup pour permettre l'alimentation des valeurs de sélection.

Chargement des listes de sélection

Le chargement de la liste de sélection peut se faire après la connexion au serveur, cette méthode est particulièrement adaptée si les valeurs sélectionnées sont statiques.

Dans ce cas utilisez la méthode onConnected du contexte de l'objet $l1000 :

$(document).ready( function() {
 
     $.l1000.initialize({
       ....
       onConnected: function () {
         // load lookups
         $('.lookup').lookup();
       }
     });
}

Cette méthode va charger tous les champs de sélection ayant la classe lookup

Si les valeurs de sélection ne sont pas statiques, par exemple si elles dépendent du contexte de saisie, vous devez alimenter les zones de sélection AVANT la saisie, par exemple sur un évènement de changement de page.

Tip-20px.png Tip : Ne tentez pas d'alimenter le champ de sélection sur le onClick de l'élément, cette méthode ne fonctionne pas

Code serveur

Coté serveur vous devez prévoir une requête les valeurs sélectionnable.

Cette requête doit retourner une structure de couple valeur/libellé :

//Procedure getMotifs(req:Tjson; var resp:TObject);
var json:TJson; inst:TEtatRefus; indx:Integer;
begin
  json := TJson.Create('');
  resp := json;
  indx := 0;
  foreachP inst in TEtatRefus.CreateCursor do
   begin
     json.result[indx].t := inst.Caption;
     json.result[indx].v := inst.Code;
     indx := indx+1;
   end;
end;

Référence

Fonction Usage
$.fn.lookup() Chargement des valeurs de sélection.
Outils personnels