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

访问AJAX响应并使用新值更新表,ajax,grails,Ajax,Grails,在提交AJAX请求时,我对服务器响应的处理感到困惑。我想做的是通过清除表并插入新表来更新表 控制器的以下代码给出了对ajax请求的响应,triples是一个列表: def resultsAjax = { def triples = linkedDataService.getRemoteTriplesTable("Student4") render(template:'tripleResultsTable', model:[triples:triples]) } 表格如下: &l

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

控制器的以下代码给出了对ajax请求的响应,triples是一个列表:

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>

资源ID
以及下表:

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

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

编辑:

它或多或少可以工作,但奇怪的是,表没有更新,但新值位于表的顶部

模板如下所示:

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

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

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

</tr>

${tripleProperty.property}
${tripleProperty.value}


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

您的tripleResultsTable.gsp模板看起来像什么?您可能需要将模型属性设置为如下所示

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

然后在模板中可以使用

<g:each in="${triples}">...</g:each>
。。。
要输出所需的TR/TD元素

干杯


Lee

您的tripleResultsTable.gsp模板是什么样的?您可能需要将模型属性设置为如下所示

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

然后在模板中可以使用

<g:each in="${triples}">...</g:each>
。。。
要输出所需的TR/TD元素

干杯

背风