2011-06-29 43 views
0

我有一個像下面這樣的GSP頁面。這個要求就像一個報表列表 - 用戶可以選擇一個報表,並可以將報表導出爲ex​​cel。如何閱讀Grails中選定的單選按鈕值?

如何讀取所選的單選按鈕並將所選值傳遞爲「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}]"> 

回答

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,您將收到選定的報告。

+0

的'導出到Excel'將充當我的提交按鈕! – HanuAthena

+1

在你的情況下,我會更容易使用表單提交按鈕。否則,像splix所說的,你必須使用java腳本。 – hitty5

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