2010-02-04 56 views
1

如何设置g的selectedIndex:选择>标记,并使用列表中的值?我有一个页面可以让你添加一条记录。该页面然后转到包含g:select的视图,并且我希望将g:select设置为默认插入到数据库中的那个项目。Grails g:选择设置selectedIndex

我试着在闪存中传递新的对象,但我无法弄清楚如何让它的索引在列表中被用来生成g:select数据。

回答

2

假如你在flash.book在控制器级存储一个Book对象,你的第二个页面看起来是这样的:

<html> 
    <head> 
     <g:javascript library="prototype" /> 
     <g:javascript> 
       function showLast(selectedId) { 
        if (selectedId) { 
        $$('#books option[value=' + selectedId + "]")[0].selected = true; 
        } else { 
        $('books').selectedIndex = 0; 
        } 
       }; 

       Event.observe(window, 'load', init, false); 

       function init() { 
        showLast(${flash?.book?.id}); 
       } 
      </g:javascript> 
    </head> 
    <body> 
     <g:select id="books" name="id" 
        from="${Book.list()}" 
        value="title" 
        optionValue="title" 
        optionKey="id" 
     /> 
    </body> 
</html> 
+0

真棒作品完美,我用$适应它的jQuery(“#fileSelect”) .VAL($ {闪存.upload .ID?}); – TripWired 2010-02-04 20:59:03

+0

很酷。我只是想到了一些事情:如果你刷新页面,你将失去你的选择,因为闪光范围。 Maybie最好是在第一次进入页面时将值存储在隐藏字段中,并在后续页面刷新时从中读取它... – Philippe 2010-02-05 08:49:20