AJAX / remoteFunction如何更新两个或更多不相关的div(成功时)?

时间:2012-01-16 04:36:24

标签: grails

Grails当前remoteFunction只能在成功时更新一个div(并且在出错时更新一个div)。有时我想使用单个Ajax调用更新多个div(成功时)。除了将remoteFunction链接在一起(即第一个调用成功的Javascript函数,调用第二个远程函数)时,如何做到这一点。 ...有没有办法在没有这种链接的情况下通过ajax更新页面的多个部分?

谢谢

3 个答案:

答案 0 :(得分:4)

你可以调用两个以冒号分隔的远程函数。

<g:select id='releaseVersion' name="releaseVersion" noSelection="['0':'--Select--']" from='${new Alarm().constraints.releaseVersion.inList}' onchange="${remoteFunction(controller:'alarm', action:'updateComponentByRelease',params:'\'selectedValue=\' + this.value', update:'component')};
${remoteFunction(controller:'alarm',action:'updateDiscriminatorByComponent', params:'\'selectedValue=\' + this.value',update:'subsystem')};"></g:select>

答案 1 :(得分:3)

你可以通过在javascript中获取onSuccess函数来设置生成的div的html。以下是如何执行此操作的一个很好的示例 - http://www.webdeveloperjuice.com/2010/04/01/filling-multiples-divs-by-single-ajax-call-using-jquery/

无法自动完成。

答案 2 :(得分:0)

您可以在AJAX请求完成时设置事件。例如:

<g:remoteLink action="show"
          id="1"
          update="success"
          onLoading="showProgress()"
          onComplete="updateContent()">Show Book 1</g:remoteLink>

完成http://grails.org/doc/2.0.x/guide/single.html#ajax

后会触发function updateContent

看起来没有办法自动更新两个div。唯一可行的方法是使用相同的内容更新两者。

相关问题