Как прочитать значение выбранного переключателя в Grails? - PullRequest
0 голосов
/ 29 июня 2011

У меня есть страница GSP, как показано ниже. Требование аналогично тому, как будет показан список отчетов - пользователь имеет возможность выбрать один отчет и может экспортировать отчет в Excel.

Как прочитать выбранную радиокнопку и передать выбранное значение как «params»?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="layout" content="main" />
</head>
<body>
    <div class="nav">
        <span class="menuButton"><g:link class="create"
                action="excelExport" params="['id':{ radId.value}]">Export To Excel</g:link>
        </span>
    </div>
    <div class="body">
        <div class="message">Select the report and click 'Excel Export'</div>
    </div>
    <g:form method="post">
        <g:render template="displayUploadedReportsTemplate"
            model="['uploadedReports':uploadedReports]" />
    </g:form>

</body>
</html>

, где displayUploadedReportsTemplate:

<tbody>
            <g:each in="${uploadedReports}" var="bbkRat">
                <tr>
                    <td valign="top"><g:radio name="radId"
                            value="${fieldValue(bean:bbkRat,field:'id')}" /></td>
                    <td valign="top"><label> ${fieldValue(bean:bbkRat,field:'cmpName')}
                    </label></td>
                    <td valign="top"><label> ${fieldValue(bean:bbkRat,field:'reportCreationDate')}
                    </label></td>

                    <%--<td valign="top">
                    <label> ${fieldValue(bean:bbkRat,field:'cmpName')}
                </label> 
                </td>

                --%>
                <tr>
            </g:each>

        </tbody>

Как значение параметра должно быть ниже ??

<g:link class="create"
                action="excelExport" params="['id':{ radId.value}]">

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Я бы порекомендовал использовать группу переключателей.вместо использования тега g: readio вы можете заменить его простым вводимым тегом html внутри каждого тега, например,

<input type="radio" name="myGroup" value="1" checked="checked" />
<input type="radio" name="myGroup" value="2" />
<input type="radio" name="myGroup" value="3" />

, вы уже определили форму вокруг displayUploadedReportsTemplate.поэтому вам нужно добавить кнопку отправки в эту форму и действие, в котором параметры должны быть обработаны, например,

<g:form method="post" action="test">

в тестовом действии вы можете распечатать свой params.myGroup и получить его в выбранном отчете.

0 голосов
/ 29 июня 2011

<g:link обрабатывается на стороне сервера, поэтому вы не можете использовать его на стороне клиента, вместо этого вы должны использовать javascript.

Это будет выглядеть так:

<a href="#" class="excelExport" onclick="doExport(); return false">
<script type="text/javascript">
function doExport() {
  var id= $('input:radio[name=radId]:checked').val();
  window.location = '${g.createLink(action:'excelReport')}?id=' + id;
}
</script>

ps Я предполагаю, что вы используете jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...