Je me suis débarrassé des offres originales UPDATE gsp Grails.Grails: Comment fonctionne la fonction UPDATE?
je l'ai mis dans la première rangée de ma table de list.gsp et changer toutes les valeurs de la table à g: textfield ils peuvent être modifiés sans aller au save.gsp
Mais maintenant, je suis essayer de le faire fonctionner, et je ne peux pas.
J'ai ajouté un bouton de mise à jour dans la dernière colonne de la ligne, de chaque ligne.
Quand je change les valeurs de g: textfields et cliquez sur le bouton de mise à jour, il me dit
Density #ID updated
mais les valeurs ne changent pas.
Je pense que je fais quelque chose de mal avec def mise à jour dans le contrôleur.
Voici le code:
def update = {
log.info "Entering Action ${actionUri}"
def densityInstance = Density.get(params.id)
if (densityInstance) {
if(params?.Rcommodity) {
println "${params.Rcommodity}"
}
if (params.version) {
def version = params.version.toLong()
if (densityInstance.version > version) {
densityInstance.errors.rejectValue("version", "default.optimistic.locking.failure", [message(code: 'density.label', default: 'Density')] as Object[], "Another user has updated this Density while you were editing")
render(view: "list", model: [densityInstance: densityInstance])
return
}
}
densityInstance.properties = params
if (!densityInstance.hasErrors() && densityInstance.save(flush: true)) {
flash.message = "${message(code: 'default.updated.message', args: [message(code: 'density.label', default: 'Density'), densityInstance.id])}"
redirect(action: "list", id: densityInstance.id)
}
else {
redirect(action: "list", id: densityInstance.id)
}
}
else {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'density.label', default: 'Density'), params.id])}"
redirect(action: "list")
}
}
Le Rcommodity est le nom des champs de texte créé, je mets un println pour voir si la valeur avait raison, maintenant je ne sais pas comment faire la valeur de le champ de texte est celui entré, il me donne la même valeur qu'il avait auparavant mais il me donne le message disant qu'il a été mis à jour. Le contrôleur est DensityController et le domaine est la densité
Toute aide serait grandement appréciée. Merci: D
marchandise est une propriété de Densité, je devrais ajouter aussi des commodités ?? – randomizertech
Désolé pour le délai - consultez la documentation 'Data Binding' (http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.1.6 Data Binding). Vos paramètres (définis à partir des noms d'entrée de formulaire gsp) devront correspondre aux propriétés densityInstances - je ne peux pas dire ce que vous les avez appelé, mais deviné à partir de l'une des lignes que vous avez collées ci-dessus. –
Ok, mais disons que j'ai un champ dans la première ligne, où je les crée tous, avec le nom 'commodity', donc c'est déclaré dans le domaine. Alors le créé est 'Rcommodity', dois-je l'ajouter au domaine pour le mettre à jour ?? Est-ce ce que vous essayez de dire? – randomizertech