Page 1 sur 1

Utiliser un array pour peupler un viewpanel avec XPages

MessagePublié: 30 Oct 2012 à 07:25
par sisif2001
Bonjour,

J'ai concu une application en XPages pour le web avec deux onglets. Chaque onglet contient un contrôle de type "Viewpanel".

Dans le premier onglet, j'ai ajouté un bouton qui permet de sauvegarder les rowIDs dans un document unique, puis de les faire passer dans une variable sessionScope.

Maintenant, ce que j'aimerais faire, c'est deux choses :

- Soit j'utilise les ROWIDs sauvegardés dans ma variable sessionScope pour peupler mon second viewPanel.
- Soit j'utilise les ROWIDs sauvegardés dans mon document pour peupler mon second viewPanel.

J'ai déja tenté le coup avec la méthode GetAllDocumentsByKey, mais je dois avouer que je dois mal m'y prendre. :roll:

Est ce que vous savez me dire si cela est possible par un moyen ou par un autre ?

Merci d'avance, :wink:

Re: Utiliser un array pour peupler un viewpanel avec XPages

MessagePublié: 30 Oct 2012 à 14:43
par Smicky
Je ne pense pas que tu puisses simplement utiliser un viewpanel dans le second onglet car le viewpanel a besoin d'une datasource de type dominoview (que tu peux crawer, filtrer etc... mais dont tu ne peux pas forcément piocher facilement les documents correspondants a tel ou tel ID).

Le plus simple me semble un repeat control qui itère sur ta variable de session.

Si tu voulais absolument utiliser un viewpanel dans le second onglet, il faudrait peupler sa datasource avec une requete pour ramener les docs en question... avec une recherche par exemple en utilisant tes ID...mais cela ne me semble pas tres approprié

Re: Utiliser un array pour peupler un viewpanel avec XPages

MessagePublié: 30 Oct 2012 à 15:07
par sisif2001
En fait mon stress, et j'imagine que c'est une broutille pour quelqu'un qui s'y connait, c'est d'arriver à pondre le code Javascript ad-hoc.

Pour le moment, j'arrive a cela :

Code : Tout sélectionner
//J'ouvre le canal pour lire les cookies du navigateur
var UserID = facesContext.getExternalContext().getRequest();
var UserCookie = UserID.getHeader("Cookie");

//Je localise le nom du client et le renvoie dans la variable UserLogin
var IndexDebut = UserCookie.indexOf("Login",0);
var IndexFin = UserCookie.indexOf(";",IndexDebut);
var UserLogin = UserCookie.substring(IndexDebut + 9,IndexFin);

//Je me connecte a la vue qui contient le document que je recherche
var viewToDig = database.getView("(By Customer - Improvement Tickets)");
var OldDoc:NotesDocument = viewToDig.getDocumentByKey(UserLogin);

//Je récupere le champ qui contient les NoteIDs qui m'interessent.
var existingIDs = OldDoc.getItemValue("DocumentId");
return ListExistingIDs = @Implode(@Text(existingIDs),'":"')


..... mais ensuite, je m'arrache les cheveux pour trouver la bonne combinaison de méthode pour filtrer mon affichage avec les NoteIDs.

Un petit coup de main svp please pitié :D

Re: Utiliser un array pour peupler un viewpanel avec XPages

MessagePublié: 30 Oct 2012 à 16:30
par sisif2001
C'est bon, j'ai reussi a m'en sortir. Merci pour ton aide