2012-11-06 67 views
4

我目前正在研究一個Grails應用程序,我正在尋找一個選擇列表的頁面,並將其Key設置爲一個值,並將Value設置爲另一個值。所有相關元素的代碼如下:在Grails選擇列表上設置選項密鑰和值?

域對象:

class Cars { 
    String carType 
    String car 
} 

控制器:

def create() { 
    List cars = Cars.list() 
    [dealerInstance: new Dealer(params), cars: cars] 
    render(text:"This site in curently under Maintainence!") 
} 

查看:

<g:select name="cars.id" from="${cars}" optionKey="${carType}" optionValue="${car}"/> 

現在,當我運行這段代碼並獲取填充列表但是數據看起來象下面這樣:

<select id="cars.id" name="cars.id"> 
    <option value="com.app.Cars : 1">com.app.Cars : 1</option> 
    <option value="com.app.Cars : 2">com.app.Cars : 2</option> 
    <option value="com.app.Cars : 3">com.app.Cars : 3</option> 
</select> 

,然後當我試試這個:

查看:

<g:select name="cars.id" from="${cars.car}" optionKey="${carType}" optionValue="${car}"/> 

我得到的以下:

<select id="cars.id" name="cars.id"> 
    <option value="Audi">Audi</option> 
    <option value="BMW">BMW</option> 
    <option value="Scoda">Scoda</option> 
</select> 

T他不是我想要的一切我希望能夠設置不同的鍵值對這個選擇列表上,這樣我可以在我的應用程序中使用的數據是什麼,我想下面將要生成:

<select id="cars.id" name="cars.id"> 
    <option value="Saloon">Audi</option> 
    <option value="Hatch Back">BMW</option> 
    <option value="Estate">Scoda</option> 
</select> 

有人可以告訴我如何在Grails中實現這個嗎?

回答

8

試試這個:

<g:select id="cars.id" name="cars.id" from="${cars}" optionKey="carType" optionValue="car"/> 

什麼基本情況:

當您使用屬性,在列表中的標記迭代,你作爲參數傳遞。 optionKey和optionValue應該是表示要在當前對象中訪問(通過迭代器訪問)的屬性的字符串。

+0

是......'optionKey'和'optionValue'都應該是字符串。 – doelleri

+0

這是如何工作:),但現在我需要創建一個標籤,顯示所選項目的鍵值,每當選擇列表更改,任何想法?我在想JavaScript嗎? – user723858

+0

聽起來像一個新問題 – doelleri

相關問題