我有一个表单页面,用户可以在其中选择一个过滤器,页面底部的表格也会更新。表中的每一行在第一列中都有一个超链接,该超链接将一个订单项与数据库中的一个项目相关联。我没有使用GORM。
我需要能够通过AJAX(正在运行)将当前过滤器发送到 Controller 。然后,我需要渲染一个局部模板(到div),该模板可加载基于客户端请求参数的查询创建的数据。
GSP:
....
<button onClick="generate_table()" class="pure-button">Generate Table</button>
...
<div id="selection_table">This should load with data</div>
...
JS:
//Link for AJAX
var url = "${g.createLink(action:'generate_table', controller: "statusReports")}";
//The actual call
$.getJSON(url, {
period: JSON.stringify($("#period").val()),
...
...
}, function(data) {
$('#selection_table').empty();
}).done(function(data) {
//I need to load the template at this point?
})
Controller :
def generate_table(){
def table_data = statusReportsService.generate_titles(params)
// Table data is already a map
// What do I need to render here? The template is named _selectionTable.gsp and should use table_data to generate html.
}
部分:
我还没有为此编写代码。现在,这只是一些随机文本,以查看当我按下按钮时是否可以加载模板
最佳答案
在您的 Controller 中:
render(template: 'selectionTable', model: table_data)
在您的GSP / HTML中,您需要使用
$.get
并使用以下命令:$('#selection_table').html(data)
这应该够了吧!
关于ajax - Grails将部分模板渲染为Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046827/