Я хочу избавиться от create.gsp и save.gsp и разместить все на одной странице.
Я переместил все эти поля в первую строку моего списка в list.gsp
.
Но теперь я не знаю, как связать его с остальными данными и заставить его работать.
Я должен заставить работать кнопку создания. Но тогда я не могу заставить работать кнопку обновления.
Вот изображение того, как выглядят первые строки
http://i56.tinypic.com/25jwmdf.jpg
Все создается в первой строке, затем вы нажимаете кнопку CREATE, и создается новая строка со всеми данными, помещенными в текстовые поля. Первая строка не имеет идентификатора, но все остальные имеют.
Я также получил кнопку стирания, чтобы работать. Таким образом, в основном, единственное, чего не хватает, это кнопки UPDATE.
Есть идеи ??
Заранее спасибо!
EDIT
Вот что у меня в контроллере:
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,'Rcommodity':params?.Rcommodity])
}
}
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")
}
}
И так как grails делает это по столбцам, строка немного грязная, но вот она:
<g:each in="${densityInstanceList}" status="i" var="densityInstance">
<g:form action="update">
<tr class="${(i % 2) == 0 ? 'even' : 'odd'}">
<td>${fieldValue(bean: densityInstance, field: "id")}</td>
<td><g:textField name="Rcommodity" value="${densityInstance?.commodity}" class="input" onKeyPress="return alpha(event)"/> <img src="${resource(dir:'images/skin',file:'information.png')}" ></td>
<td><g:textField name="Rorigin" value="${densityInstance?.origin}" maxlength="3" size="5" class="input" onKeyPress="return alpha(event)"/> <img src="${resource(dir:'images/skin',file:'information.png')}" ></td>
<td><g:textField name="Rshipper" value="${densityInstance?.shipper}" size="3" class="input" onkeypress="return IsNumeric(event)"/> <g:textField name="RshipperName" value="${densityInstance?.shipperName}" size="15" class="input-b" onfocus="this.blur()"/> <img src="${resource(dir:'images/skin',file:'information.png')}" ></td>
<td><g:textField name="Ragent" value="${densityInstance?.agent}" size="3" class="input" onkeypress="return IsNumeric(event)"/> <g:textField name="RagentName" value="${densityInstance?.agentName}" size="15" class="input-b" onfocus="this.blur()"/> <img src="${resource(dir:'images/skin',file:'information.png')}" ></td>
<td><g:textField name="Rdest" value="${densityInstance?.dest}" size="5" class="input" onKeyPress="return alpha(event)"/> <img src="${resource(dir:'images/skin',file:'information.png')}" ></td>
<td><g:textField name="Rdensity" value="${densityInstance?.density}" size="15" class="input" onkeypress="return IsNumeric(event)"/></td>
<td><g:textField name="RAM" value="${densityInstance?.AM}" size="1" class="input"/></td>
<td width="100">
<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: 'Esta seguro que desea Eliminar?')}');" />
</g:form>
</td>
</tr>
</g:form></g:each>