我有 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 中传递投资组合参数,这一切都可以正常工作并完美显示。
问题:
当我想对出版物列表视图中的表标题进行排序时,排序会移动数据但不遵循任何排序顺序。我已经尝试了所有领域技巧,例如列出出版物、比较器等,我已经搞砸了使用修改视图.sort{a,b-> a.id.compareTo(b.id)}
但仍然没有正确排序它们。
如何让这些列正确排序?重申一下,我需要或希望表中的所有列都是可排序的。
到目前为止我做了什么但没有奏效:
<g:sortableColumn
在视图中- 领域类 Portfolio used 列出出版物
- 视图中的内联比较器
- 许多其他的事情。
我哪里错了?我是否需要在投资组合控制器下编写一个新方法来处理列表操作和参数排序,或者我可以在视图中做些什么来解决这个问题。
示例列表视图 - 为简洁起见减少
<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()]