2011-06-02 150 views
0

我已經安裝了grails導出插件。它有一個元素導出:將參數值作爲屬性的格式。我想知道如何將其他元素的值設置到此params屬性上,以便它可用於我的控制器操作。如何在export:格式元素中設置params屬性的值爲grails導出插件

<div id="exportDetail"> 
    <g:select name="reportType" from="${['Daily', 'Weekly Hour', 'Weekly Day']}" ></g:select><br/> 
    <g:datePicker name="reportStartDate" precision="hour"></g:datePicker><br/> 
    <g:datePicker name="reportEndDate" precision="hour"></g:datePicker><br/> 
    <export:formats action="exportRollup" formats="['csv', 'excel', 'ods', 'pdf', 'rtf', 'xml']" params="[**how to pass select, datepicker stuff here to controller**]"/> 
</div> 

回答

2

您給taglib的參數只會影響Grails呈現的鏈接。如果您希望鏈接包含頁面呈現後更改的參數,例如datepickers所選的值,則需要使用Javascript。下面是一個粗略的例子:

$('.menuButton a').click(function() { 
    var target = this.href + '&reportStartDate=' + $('#reportStartDate').val(); 
    window.location.href = target; 
    return false; 
}); 

理想情況下,您的導出按鈕將提交一個包含datepickers的表單,而且您不需要使用Javascript。你將不得不編寫自己的格式taglib來做到這一點。這會讓你開始:

  1. 在你的項目中創建一個新的taglib。給它namespace = 'export',所以它可以覆蓋插件的標籤。將formats標記從ExportTagLib複製到您的新標記庫。
  2. 更改<a>標記一個提交按鈕:input(type: 'submit', name: 'format', value: format)
  3. 如果你想圖形按鈕,而使用這樣的:input(type: 'image', name: 'format', value: format, src: g.resource(plugin: 'export', dir: 'images/skin', file: format + '.png'))
  4. 現在,您將需要在你的<export:formats>標籤<form>標籤在你的GSP。

您將無法再在控制器中使用params.extension,但要從格式中找出文件擴展名並不困難。

+0

感謝您的回答。如果我要用taglib來做,你能否提供一些關於我的情況看起來如何的指針?混亂是因爲導出:格式已經包含按鈕,我不清楚如何添加這些參數。 – Abe 2011-06-03 08:14:46

+0

我已經添加了一個如何使用自己的基於按鈕的標記替換export:formats標記的示例。 – Dana 2011-06-03 18:11:16

+0

謝謝!工作得很好。 – Abe 2011-06-04 19:53:12