如何使用列表中的值在 <g:select> 标记上设置 selectedIndex?我有一个允许您添加记录的页面。然后页面转到包含 ag:select 的视图,我希望 g:select 默认为我刚刚插入数据库的那个项目。
我尝试在闪存中传递新对象,但我不知道如何在用于生成 g:select 数据的列表中获取它的索引。
如何使用列表中的值在 <g:select> 标记上设置 selectedIndex?我有一个允许您添加记录的页面。然后页面转到包含 ag:select 的视图,我希望 g:select 默认为我刚刚插入数据库的那个项目。
我尝试在闪存中传递新对象,但我不知道如何在用于生成 g:select 数据的列表中获取它的索引。
假设您在控制器级别将 Book 对象存储在 flash.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>