我已经研究过如何使用可选值显示下拉列表。目前,我在下拉列表中有一个域对象(人员)列表。它们以“名字姓氏”显示。
我想更改名称在选择中的显示方式。看看g:select API,我看到我可以使用optionValue和optionKey。我试过了,但无处可去。所以这是我目前的代码:
<g:select id="allPeople" name="allPeople" from="${dropdown}" />
我希望输出为“Last,First”。我试过这个:
<g:select id="allPeople" optionValue="${it?.last},${it?.first}" from="${dropdown}" name="allPeople" value="" >
答案 0 :(得分:4)
一种很好的方法是在你的域上添加一个瞬态getter,然后将其用于optionValue。
class Person {
String first
String last
static transients = ['lastFirst']
String getLastFirst() {
"$last, $first"
}
}
然后
<g:select name="allPeople" optionValue="${it.lastFirst}" from="${dropdown}"/>
答案 1 :(得分:2)
试试这样:
optionValue="${{it?.last+', '+it.first}}"
这意味着您传递了一个构建所需内容的闭包。