Lookup (jqm1000)

De Wiki1000
Révision datée du 7 avril 2014 à 13:37 par Syfre (discussion | contributions) (Page créée avec « 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 list... »)
(diff) ← Version précédente | Voir la version actuelle (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 :

<source lang="delphi">

$(document).ready( function() {

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

} </source>

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é :

<source lang="delphi"> //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; </source>