访问AJAX响应并使用新值更新表

时间:2010-11-09 09:08:00

标签: ajax grails

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

控制器的以下代码给出了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>

是否需要比render(template ..)更多的代码来替换表中的值?

1 个答案:

答案 0 :(得分:1)

您的tripleResultsTable.gsp模板是什么样的?你可能看起来像这个

的模型属性
<g:render  id="resultsAjax" template="tripleResultsTable" model="${[triples:triples]}" />

然后在您的模板中,您可以使用

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

输出你想要的TR / TD元素

欢呼声