Lookup (jqm1000)

De Wiki1000
(Différences entre les versions)
(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... »)
 
(Chargement des listes de sélection)
Ligne 37 : Ligne 37 :
  
 
Cette méthode va charger tous les champs de sélection ayant la classe '''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|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===
 
===Code serveur===

Version du 7 avril 2014 à 15:44

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

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