J'ai le créer dans la table/liste que Grails fournit.Grails: Comment faire un bouton SAVE dans la même table et le faire fonctionner?
Voici une photo de ce que j'ai
http://i56.tinypic.com/25jwmdf.jpg
Comme vous pouvez le voir, je crée tout sur la première ligne de ma table, puis de la 2ème ligne et sur la liste réelle.
Dans la dernière colonne de la 2ème ligne, vous pouvez voir que j'ai le bouton UPDATE et un bouton Supprimer.
Le bouton de suppression semble fonctionner correctement, mais j'ai des problèmes avec le bouton UPDATE.
Voici le code de cette dernière colonne
<g:form>
<g:hiddenField name="id" value="${densityInstance?.id}" />
<g:actionSubmit class="editar" action="update" value="${message(code: 'default.button.editar.label', default: ' ')}" />
<g:actionSubmit class="eliminar" action="delete" value="${message(code: 'default.button.eliminar.label', default: ' ')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Are you sure you want to delete?')}');" />
</g:form>
Et voici ce que j'ai pour la suppression et la mise à jour dans le contrôleur
def delete = {
def densityInstance = Density.get(params.id)
if (densityInstance) {
try {
densityInstance.delete(flush: true)
flash.message = "${message(code: 'default.deleted.message', args: [message(code: 'density.label', default: 'Density'), params.id])}"
redirect(action: "list")
}
catch (org.springframework.dao.DataIntegrityViolationException e) {
flash.message = "${message(code: 'default.not.deleted.message', args: [message(code: 'density.label', default: 'Density'), params.id])}"
redirect(action: "show", id: params.id)
}
}
else {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'density.label', default: 'Density'), params.id])}"
redirect(action: "list")
}
}
Le SUPPRIMER semble fonctionner très bien, et ici est le UPDATE, (peut-être est le défaut SAVE que j'ai besoin de modifier, je ne suis pas si sûr et c'est pourquoi je demande:
Voici la mise à jour:
def update = {
def densityInstance = Density.get(params.id)
if (densityInstance) {
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 {
render(view: "list", model: [densityInstance: densityInstance])
}
}
else {
flash.message = "${message(code: 'default.not.found.message', args: [message(code: 'density.label', default: 'Density'), params.id])}"
redirect(action: "list")
}
}
Merci d'avance!
Le bouton Modifier/enregistrer est-il destiné à une ligne spécifique ou à toutes les lignes en même temps? – Ruben
Une ligne à la fois ... Toutes les lignes créées ont un bouton d'édition/sauvegarde et un autre à la fin de la ligne dans la dernière colonne – randomizertech