2016-08-03 48 views
0

假设我有一个名为carNames的数据库。我希望下拉列表显示每辆车的全名,而我希望每个车的值都只显示每辆车的ID。无论我做什么,它都会使值和显示的名称保持一致,并且基于我所做的所有更改,似乎只有from标记对下拉列表和它的值有任何影响。以下是代码:g选择:我如何从一个列表中提取值并从另一个列表中显示选项?

<g:select name="carDropdown" 
    from="${carNames.carOfficialName}" 
    value="${carNames*.carId}" 
    optionValue="${carNames*.carId[]}" 
    optionKey="${carNames*.carId[]}" 
    multiple="true" /> 
+0

from应该是一个包含列表的对象,该键是列表元素的文本值,如在id中,您希望看到的值是name的名称。这看起来都错了 – Vahid

回答

0

尝试在服务器端创建组合列表。

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页面,并用它来填充下拉列表。

相关问题