Passer des paramètres à p:remoteCommand à partir de JavaScript
Je veux passer de la valeur à remoteCommand
à partir de javascript. Si cela est possible, comment puis-je faire et comment puis-je les recevoir dans le backing bean?
- Les premières réponses ici sont périmés, veuillez voir la réponse de @BalusC stackoverflow.com/a/18510102/55070
Vous devez vous connecter pour publier un commentaire.
Oui, c'est possible. La façon de le faire dépend de la PrimeFaces version. Vous pouvez le voir dans PrimeFaces guide de l'utilisateur. Avant PrimeFaces la version 3.3 de la syntaxe est comme suit (copypasted de 3.2 du guide de l'utilisateur):
Il est disponible dans la sauvegarde de haricot par les moyens habituels. E. g. dans la portée de la requête bean:
ou dans la méthode d'une vaste étendue de haricot:
Cette approche a cependant l'inconvénient que vous ne pouvez pas spécifier un seul paramètre à valeurs multiples comme normales avec les formulaires HTML et les paramètres de la requête HTTP (qui est dans le monde réel utilisé sur, par exemple, de multiples sélectionnez dropdownlist et de multiples sélectionnez checkboxgroup).
Depuis PrimeFaces la version 3.3 de la syntaxe est comme suit (copypasted de 3.3 guide de l'utilisateur):
De cette façon, vous offre la possibilité de spécifier plusieurs valeurs sur un seul nom de paramètre. Les paramètres avec des valeurs uniques, comme ci-dessus sont disponibles de la même manière que l'ancienne:
(remarque: vous pouvez utiliser
Integer
dans Mojarra, mais pas dans MyFaces, c'est complètement étranger à<p:remoteCommand>
)ou dans la méthode d'une vaste étendue de haricot:
Si vous avez besoin de spécifier un paramètre à valeurs multiples, alors vous pouvez le faire comme suit:
dans la portée de la requête bean:
ou dans la méthode d'une vaste étendue de haricot:
Mise à jour
Accès aux paramètres moderne CDI JSF, peut être fait d'une manière différente, le contour au cette Stackoverflow Q/A
Page:
JavaScript:
Bean:
action="#{bean.method(param)}"
, ce qui permettrait d'éviter l'appel àFacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("param")
dans la fève?action="#{bean.method(Utility.getParam("param"))}"
.action="#{bean.method(param.param)}"
. La carteparam
est le EL represenation deFacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
.Combiner @BalusC @Joel post pour une fonctionnelle exemple
Lorsque vous devez passer plus d'un paramètre à partir de javascript, la syntaxe est la suivante:
var param1 = ...;
var param2 = ...;
var param3 = ...;
remoteCommandFunction([{name:'param1', value:param1}, {name:'param2',value:param2}, {name:'param3',value:param3}]);
Si vous souhaitez appeler votre propre fonction, par exemple. une boîte de dialogue de confirmation, votre fonction personnalisée doit être conforme à la transmission de paramètres de style.
par exemple:
Le java script fonction
La remoteCommand tag
name
attribut de la<p:remoteCommand>
(remoteDelete) doit correspondre, ne devraient-ils pas?PrimeFace 5.0, tableau dynamique (toutes les tables de la largeur de la colonne sera envoyer par cette méthode)
Faisceau
p:remoteCommand
JS