[英]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.