2016-12-07 1 views
1

J'ai une Xpage où j'ai ces champs de texte riche à remplir.getComponent méthode se confondre avec des onglets sur Xpages

Si l'utilisateur ouvre deux documents différents (document A puis document B) dans deux onglets du navigateur et enregistre A, la méthode getComponent est perdue et enregistre dans A les données du document B remplaçant les champs. mais cela ne se produit que si l'utilisateur ne change rien, s'il change les données ne sont pas remplacées.

J'ai essayé de faire un XSP.partialRefreshPost("#{id:divWithTheData}") dans le onStart de l'enventHandler du bouton, pour obtenir les données actualisées, puis le getComponent sait exactement où il devrait chercher, mais il, évidemment, n'a pas fonctionné.


Edit: (?) Les champs de texte riches ne sont pas binded à la source de données, en fait les champs qui sont bindeded dans la source de données sont enregistrées correctement, ils (les champs de texte enrichi) sont binded à une session Variable portée nommée camposRT.name, c'est pourquoi la méthode getComponent devient confuse. Je dois le faire, mettre en session variable portée, car ils ne sont pas destinés à être enregistrés dans le même document de la source de données, ils sont destinés à être enregistrés dans des documents séparés.

Répondre

0

Avez-vous défini ignoreRequestParams="true" sur la deuxième source de données, ou récupérez-vous un UNID différent de la chaîne de requête via requestParamPrefix?

Sinon, ce n'est pas un problème avec getComponent(), c'est un problème avec les définitions de sources de données. Indépendamment de ce que vous codez dans la propriété documentId, vous lui dites simplement d'enregistrer les deux sources de données sur n'importe quel document correspondant à l'UNID dans l'URL.

+0

Ceci est la déclaration sur ma source de données. ' \t \t \t \t ' Si je mets' ignoreRequestParams = "true" 'dans la balise' data', l'erreur persiste, si je mets la balise 'dominoDocument', la page ne charge même pas les données. –

+0

Dans la question, vous avez mentionné que l'utilisateur édite deux documents. Qu'en est-il de l'autre source de données dominoDocument? getComponent() obtient juste le composant le plus proche avec cet ID, mais il n'est pas clair à partir de la question où vous l'utilisez ou pour quel code. Je ne suis pas convaincu getComponent est la cause de vos problèmes avec un champ de texte riche lié au document B étant enregistré dans le document A. –

+0

Le Xpage charge avec la source de données 'dts_proposta' dans les deux documents. Le composant get est dans une méthode dans une bibliothèque de scripts et est appelé dans un bouton sur la Xpage. Cette fonction est utilisée pour sauvegarder les données, il faut donc récupérer les données des champs et les sauvegarder dans ses propres documents. Les deux onglets utilisent la source de données avec le même nom, puisque la même Xpage est utilisée pour ouvrir les documents, c'est pourquoi je pense que l'erreur est la méthode getComponent. –