Grails渲染部分模板到Div

时间:2014-11-20 18:25:23

标签: ajax grails

我有一个表单页面,用户在页面底部更新过滤器和表格。表中的每一行在第一列中都有一个超链接,它将行项与数据库中的项相关联。我没有使用GORM。

我需要能够通过AJAX(功能)将当前过滤器发送到控制器。然后我需要渲染一个部分模板(到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?
    })

控制器:

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

部分:

我还没有为此编写代码。现在只是一些随机文本,看我是否可以在按下按钮时加载模板

1 个答案:

答案 0 :(得分:1)

在您的控制器中:

render(template: 'selectionTable', model: table_data)

在您的GSP / HTML中,您需要使用$.get并使用以下内容:

$('#selection_table').html(data)

这应该可以做到!