Grails sortableColumn usando Object Id en lugar de Name

Tengo una lista de recursos que tienen administradores que también son recursos en mi sistema. Quiero ordenar la lista de recursos por sus nombres. Lo que encuentro es que Grails está ordenando la lista por el Id. de recurso y no por el campo que estoy especificando.

<g:sortableColumn property="orgRole" title="Org Role" />

<g:each in="${resourceInstanceList}" status="i" var="resourceInstance">
   <td>${fieldValue(bean: resourceInstance, field: "manager")}</td>
   <!--<td> ${resourceInstance.manager.toString()} </td>-->
</g:each>

He definido el mapeo estático en mi recurso para ordenar por mi atributo 'nombre' y tengo un método toString al que he intentado llamar que también devuelve el 'nombre' del objeto como valor. Todavía veo la lista ordenada por el atributo 'id' de Integer que está vinculado a la secuencia en la base de datos.

preguntado el 12 de junio de 12 a las 22:06

¿Cómo es el código del controlador? Las columnas ordenables funcionan generando enlaces a /controller/action?sort=theProperty&order=asc, y tienes que pasar estos parámetros al DomainClass.list() or .findAllByX() llamar para que la clasificación suceda realmente. -

1 Respuestas

La precisión debe definirse en sortableColumn y no en td. Debería haber usado esto:<g:sortableColumn property="orgRole.name" title="Org Role" /> esto le dice explícitamente a Grails qué campo quiero usar; de lo contrario, se basa en el elemento de identificación predeterminado del objeto.

Respondido el 14 de junio de 12 a las 17:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.