2010-11-09 52 views
1

当我提交AJAX请求时,我对处理服务器的响应感到困惑。我想要做的是通过清除表格并插入新表格来更新表格。访问AJAX响应并用新值更新表格

控制器的下面的代码给出了一个resonse到AJAX请求,三倍是一个列表:

def resultsAjax = { 
    def triples = linkedDataService.getRemoteTriplesTable("Student4") 
    render(template:'tripleResultsTable', model:[triples:triples]) 
} 

这是以下形式:

<g:form action="results"> 
    <label for="id">Resource ID </label> 
    <g:textField name="id" /> 
    <g:submitToRemote value="search" update="resultsAjax" 
        url="[controller:'tripleProperty', action:'resultsAjax']"/> 
</g:form> 

和下表:

<g:render id="resultsAjax" template="tripleResultsTable" model="${triples}"/> 

如何访问服务器响应的列表?

编辑:

它的工作或多或少,但奇怪的是,该表没有更新,但新的值是在桌子上......

alt text

模板仅仅是这样的:

<g:each in="${triples}" status="i" var="tripleProperty"> 
<tr class="${(i % 2) == 0 ? 'odd' : 'even'}"> 

    <td>${tripleProperty.property}</td> 

    <td>${tripleProperty.value}</td> 

</tr> 

是否需要比渲染(模板..)更多的代码才能替换表中的值?

回答

1

你的tripleResultsTable.gsp模板是什么样的?你可能模型属性看起来像这样

<g:render id="resultsAjax" template="tripleResultsTable" model="${[triples:triples]}" /> 

然后在你的模板,你可以使用

<g:each in="${triples}">...</g:each> 

到输出中你想

欢呼

的TR/TD元素