如何将排序顺序设置为DESC默认值?这种方式并没有真正做任何事情,只是使postsAt成为唯一的可排序项目:
<div id="crudListTable">
#{crud.table fields:['title', 'postedAt'], sort:['postedAt']}
#{crud.custom 'postedAt'}
${object.postedAt.format("dd-MM-yyyy")}
#{/crud.custom}
#{/crud.table}
</div>
答案 0 :(得分:4)
如果您愿意,可以在实体上执行此操作:
@Entity
public class Course {
...
@ManyToMany
@OrderBy("lastname ASC")
public List<Student> students;
...
}
答案 1 :(得分:0)
您可以尝试将order
属性设置为DESC
吗?
#{crud.table fields:['title', 'postedAt'], sort:['postedAt'], order: 'DESC'}
...
#{/crud.table}
答案 2 :(得分:0)
这是我的黑客:
您要做的第一件事是在要排序的类上实现Comparable,并进一步创建compareTo方法。
接下来,在项目中输入crud模块。在app / views / tags.crud中,您将找到一个名为relationField.html的文件,该文件处理用于添加关系的字段。该文件分为两部分,一部分用于创建具有multiple = true的选择框,另一部分用于创建下拉选择框。如果你想要这两个分类,你必须在这两种情况下进行编辑。
用%{ _field.choices.each() { }
替换%{ _field.choices.sort().each() { }%
(基本上添加groovy语法来排序集合),输入字段将被排序。
Java类的完整示例:
引用类:
@Entity
public class Book extends Model {
@Required
public String title;
@Required
@ManyToMany(cascade=CascadeType.PERSIST)
public List<Author> authors;
@Required
@ManyToOne
public Publisher publisher;
//omitted
@Required
public String title;
@Required
@ManyToMany(cascade=CascadeType.PERSIST)
public List<Author> authors;
@Required
@ManyToOne
public Publisher publisher;
//omitted
参考类:
}
public class Author extends Model implements Comparable {
@Required
public String firstName;
@Required
public String lastName;
public int compareTo(final Author otherAuthor) {
if (this.lastName.equals(otherAuthor.lastName)) {
if (this.firstName.equals(otherAuthor.firstName)) {
return 0;
} else {
return this.firstName.compareTo(otherAuthor.firstName);
}
} else {
return this.lastName.compareTo(otherAuthor.lastName);
}
}
//omitted
此结构与relationField.html上的hack进行比较将使选择中的可能性显示为已排序。