Grails g: выбрать настройку selectedIndex - PullRequest
1 голос
/ 04 февраля 2010

Как установить selectedIndex для тега со значением из списка? У меня есть страница, которая позволяет вам добавить запись. затем страница переходит к представлению, содержащему g: select, и я хочу, чтобы g: select по умолчанию использовал тот элемент, который я только что вставил в базу данных.

Я попытался передать новый объект во флэш-память, но не могу понять, как получить его индекс в списке, используемом для генерации данных g: select.

1 Ответ

2 голосов
/ 04 февраля 2010

Предположим, что вы храните объект 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>
...