对如何处理以下情况有问题或缺乏理解;
我有2个域名
Portfolio
static hasMany [publications: Publication]
String portfolioName
Publication
static belongsTo = [portfolio: Portfolio]
String publicationName
String pubcontent
String published
String publisheddate
我想要g:render
或tmpl
出版物列表视图或投资组合域的展示视图中的新部分视图。如果我调整发布列表视图以在portfolioInstance?.publications中传递投资组合参数,这一切都可以正常显示并完美显示。太棒了。
问题:
当我想从发布列表视图中对表标题进行排序时,排序会移动数据但不遵循任何排序顺序。我已经尝试过所有域名技巧,例如List出版物,比较器等,我已经搞砸了使用.sort{a,b-> a.id.compareTo(b.id)}
修改视图但仍然是nada。
如何让这些列正确排序?我应该迭代 - 我需要或希望表中的所有列都是可排序的。
到目前为止我做了什么,没有奏效:
是<g:sortableColumn
在视图中,域类Portfolio使用List发布,比较器在视图中内联,其他很多东西。
我哪里错了?我是否需要在组合控制器下编写一个新方法来处理列表操作和params排序,或者我可以在视图中执行某些操作来解决此问题。
示例列表视图 - 为简洁而缩减
<g:each in="${portfolioInstance?.publications }" status="i" var="pubs">
<g:link controller="publication" action="show" id="${publicationInstance.id}">${fieldValue(bean: publicationInstance, field: "publicationName")}</g:link>
<td><g:formatDate date="${pubs.publisheddate}" /></td>
<td>${fieldValue(bean: publicationInstance, field: "published")}</td>
控制器
标准grails生成控制器
def show(Long id) {
def portfolioInstance = Portfolio.get(id)
portfolioInstance.properties=params
def list(Integer max) {
params.max = Math.min(max ?: 10, 52)
if (params.sort==null){
params.sort = "published"
}
[publicationInstanceList: Publication.list(params), publicationInstanceTotal: Publication.count()]
完全迷失并厌倦了搜索。欢迎所有建议。
答案 0 :(得分:0)
请参阅GORM Documentation的第6.5.2节(“默认排序顺序”)。你只需要添加
static mapping = {
sort "publicationName"
}
在您的“出版物”类中,如果您希望将其作为“出版物”按字段排序的字段。