如何在export中设置params属性的值:格式化grails导出插件的元素

时间:2011-06-02 07:55:57

标签: grails gsp

我已经安装了grails导出插件。它有一个元素导出:格式,它将params值作为属性。我想知道如何将其他元素的值设置到此params属性上,以便它可用于我的控制器操作。

<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>

1 个答案:

答案 0 :(得分:2)

您为taglib提供的参数只会影响Grails呈现的链接。如果您希望链接包含在页面呈现后更改的参数,例如datepickers选择的值,则需要使用Javascript。这是一个粗略的例子:

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

理想情况下,您的导出按钮会提交包含日期选择器的表单,您不需要使用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. 您现在需要在GSP中的<form>标记周围添加<export:formats>标记。
  5. 您将无法在控制器中使用params.extension,但要从格式中找出文件扩展名并不难。