g选择:我如何从一个列表中提取值并从另一个列表中显示选项?
问题描述:
假设我有一个名为carNames
的数据库。我希望下拉列表显示每辆车的全名,而我希望每个车的值都只显示每辆车的ID。无论我做什么,它都会使值和显示的名称保持一致,并且基于我所做的所有更改,似乎只有from
标记对下拉列表和它的值有任何影响。以下是代码:g选择:我如何从一个列表中提取值并从另一个列表中显示选项?
<g:select name="carDropdown"
from="${carNames.carOfficialName}"
value="${carNames*.carId}"
optionValue="${carNames*.carId[]}"
optionKey="${carNames*.carId[]}"
multiple="true" />
答
尝试在服务器端创建组合列表。
def cars = Car.findAll()
def carnames = magicCodeToGetCarNames()
def carnamemap = [:]
def cars_with_names = []
carnames.each {
carnamemap[it.car_id] = it.carname
}
cars.each{
cars_with_names << [
id: it.id,
carname: carnamemap[it.id],
color: it.color,
another: it.another,
]
}
然后通过cars_with_names
到GSP页面,并用它来填充下拉列表。
from应该是一个包含列表的对象,该键是列表元素的文本值,如在id中,您希望看到的值是name的名称。这看起来都错了 – Vahid