[英]How to customise select tag in Grails
我在客户和产品之间有hasMany
关系。 在生成视图和控制器时,可以在产品的创建视图中选择一个客户端。 默认情况下,Grails显示仅包含客户端ID的选择。 我该如何改变? 例如,我只想显示客户端名称而不是ID。
我正在使用Grails 3.3,这是域代码:
client.groovy :
class client {
String FirstName
String LastName
static hasMany = [products: Product]
}
product.groovy :
class product {
String Name
int Price
Client c
static belongsTo = Client
}
我相信默认生成的选择列表将使用对象的toString()
方法作为每个<option>
的显示值和键值的id。 更改默认显示的最简单方法是覆盖产品类中的toString()
:
@Override
String toString() {
name
}
您可以通过指定optionKey
和optionValue
属性来自定义select
外观:
<g:select from="${Client.list()}" name="client" optionKey="FirstName" optionValue="id" />
有关详细信息,请参见参考文档 。
如果您需要做一些更奇特的事情,例如显示名字和姓氏,那么可以对列表进行一些预处理:
<g:select from="${Client.list().collect{ [ id:it.id, name:it.firstName + ' ' + it.lastName ] }}" name="client" optionKey="name" optionValue="id" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.