il faut que tu combine du jQuery.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $(document).ready(function() { // put all your jQuery goodness in here. //call SPSERVICES });
il faut que tu combine du jQuery.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $(document).ready(function() { // put all your jQuery goodness in here. //call SPSERVICES });
D'après ce que j'ai compris, tout ce qu'on met dans le $(document).ready(function()) est traité après le chargement complet de la page (donc après le chargement de toutes les données des listes).
Pour modifier le contenu de la liste, il faut donc que je mette mes instructions avant $(document).ready(function() mais les fonctions de jQuery sont-elles utilisables en dehors du bloc $(document).ready(function()).
J'ai essayé de mettre
avant $(document).ready(function()) mais ça ne semble pas fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $().SPServices({ operation: "GetListItems", async: false, listName: "BaseArtArticles", CAMLquery: "<Query><Where><FieldRef Name='Title'/><Value Type='Text'></Value></Where></Query>", debug: true });
pour utiliser SPServices :
tu dois réferencer le fichier javascript jqueryXX.min.js
tu dois réferencer le fichier javascript spservicesXX.min.js
$(document).ready(function()) peut être placé n'importe ou sur le page.
Oui.$(document).ready(function()) est traité après le chargement complet de la page
Faut pas le mettre avant, faut le mettre dedans.J'ai essayé de mettre [..]avant $(document).ready(function()) mais ça ne semble pas fonctionner.
D'accord, mais ce que je mets dedans est forcément exécuté après le chargement complet de la page, donc pour utiliser les SPCascadeDropdowns, ok, c'est ici que je les ai mis et les liens fonctionnent bien.Faut pas le mettre avant, faut le mettre dedans.
Je voudrais savoir si je peux mettre des choses afin d'éviter que SP ne charge tout le contenu de ma liste qui contient tellement d'éléments que ça met plusieurs minutes à charger.
Pour tester, j'ai mis une ligne avec alert("test"); avant le $(document).ready(function()), et le message s'affiche bien tout de suite. Mais comment faire pour appliquer un filtre sur la listbox à ce niveau ou simplement empêcher SP de charger le contenu ?
A part toucher les propriétés du field pour ne pas le charger dans les edit et new form (ShowInEditForm et ShowInNewForm = false), je ne pense pas que tu puisses contrôler le mode de chargement du champ dans le formulaire natif. Certainement pas avec du Javascript.
Tu peux utiliser un champ proxy de type texte simple pour mettre à jour le lookup ensuite (event handler, workflow), je vois mal comment tu peux faire "nativement" sinon.
Solutions aternatives :
travailler avec une version xslt du formulaire (filtrage possible car contrôle du datasource)
http://padavis.wordpress.com/2008/12...umn-in-a-list/
autocompletion d'un champ texte
(spservices)
http://www.itidea.nl/index.php/jquer...-autocomplete/
(sp tool basket)
http://sptoolbasket.codeplex.com/
Construction d'un dropdown perso et remplissage ajax.
Bonjour,
Merci pour ces réponses et autres pistes alternatives.
J'ai également pensé à une autre solution, mais ne sait pas si cela est possible.
La liste qui me pose problème est une liste qui doit permettre de renseigner un ou plusieurs codes articles. Si je remplace cette liste par une zone de texte en saisie libre (les codes seront saisis par l'utilisateur, avec un séparateur point-virgule, par exemple, pour les différentes valeurs), est-il possible de faire un contrôle de validité de la saisie, c'est-à-dire contrôler que les codes existent bien dans la liste de référence ?
Merci d'avance pour votre aide.
En gros c'est pour avoir un composant du même genre que le people picker ?
Oui, mais je ne connais pas de script déjà tout fait pour ce besoin car c'est du sur-mesure. Par contre, spservices et jquery te fournissent tous les outils nécessaires à sa réalisation (selon la complexité voulue et ton expérience entre 2h et 1j. de dév.) :
- un méthode d'interrogation asynchrone de la liste (wrappée par spservices) qui renvoie un booléen si l'élément existe OU un chargement ajax des références dans un tableau lors du chargement de la page
- un event handler javascript sur l'événement onchange ou onkeyup de la textbox qui lance la méthode de validation de chaque chaine séparée par ";"
- une action visuelle pour que l'utilisateur comprenne l'erreur (ex : label explicatif à côté du champ, bouton OK désactivé si erreur)
Merci pour ta réponse.
Oui, en gros, ça pourrait ressembler à ça. Sans avoir forcément la fenêtre de recherche.En gros c'est pour avoir un composant du même genre que le people picker ?
Pour les développements que tu proposes, sans chercher à avoir exactement un script qui colle à mon besoin très spécifique, aurais-tu quelques adresses de sites où je pourrais trouver des bouts d'exemples de chacun des points que tu mentionnes ?
Merci encore...
Bonjour,
Je vais voir pendant ma pause à midi si je peux composer un petit pot-pourri de mes contrôles javascript pour remplir les fonctions specifiées 2 posts ci-dessus.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager