繁体   English   中英

将GSP表数据发送到控制器

[英]Sending GSP table data to controller

我刚刚开始学习Grails,它看起来很棒。 我目前正在使用Export插件。 我在GSP中有一个表格和一个提交按钮。 单击按钮应将表数据(域类的实例)导出到.csv文件。 谁能帮我这个? 我猜我可能在表中具有隐藏的字段,该字段将包含域模型实例ID,而不是使用jQuery获取所有这些ID,然后将其以Ajax作为JSON发送给控制器,然后将其传递给exportService。 我应该使用$ .ajax方法还是其他方法? 或者有没有ajax的方法?

我对Grails和jQuery / Ajax都是新手,所以一些简单的例子就不错了。 谢谢。

编辑:

def results = bookCriteria.list(max: params.max as Integer, offset: params.offset as Integer) {
        and {
                'eq'("category","history")
                 ne("status", "Rented")

            }

    }
if(params?.format && params.format != "html"){
        response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
        response.setHeader("Content-disposition", "attachment; filename=report.${params.extension}")

      exportService.export(params.format, response.outputStream, results, [:], [:])

    }

我在控制器中有类似的东西。 但是它仅返回前50行(由于分页)。 如何管理分页但能够导出所有核心响应行?

如果用户可以修改表的值,则只需将表中的数据发送到服务器。 这真的是您的用例吗? 如果不是,则无需使用AJAX。

查看插件描述 在那里,您可以找到一些基本示例。

通常,您对操作进行简单的请求,获取要导出的数据,调用exportService并按照插件页面上的说明修改response

插件页面上的基本示例:

def list = {
   if(!params.max) params.max = 10

   if(params?.format && params.format != "html"){
      response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]    
      response.setHeader("Content-disposition", "attachment; filename=books.${params.extension}")

      exportService.export(params.format, response.outputStream,Book.list(params), [:], [:]) 
   }
   [ bookInstanceList: Book.list( params ) ] 
}

编辑:这是一些代码,在导出的情况下如何获取所有书籍:

def results = bookCriteria.list {
   and {
      'eq'("category","history")
      ne("status", "Rented")
   }

   if(!params?.format || params.format == "html") {
      maxResults(params.max.toInteger())
      firstResult(params.offset.toInteger())
   }
}

您可以用任何其他表示您不想列出所有结果的条件替换if(!params?.format || params.format == "html") 希望有帮助...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM