我正在使用如下的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>
如何将params值低于??
<g:link class="create"
action="excelExport" params="['id':{ radId.value}]">
答案 0 :(得分:2)
我建议使用单选按钮组。而不是使用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,然后您将收到选定的报告。
答案 1 :(得分:0)
<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