Lookup (jqm1000)

De Wiki1000
Version du 7 avril 2014 à 15:37 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.

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

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;
Outils personnels