Grails remoteField-我可以调用render/redirect吗



我不是在寻找div更新。我正在寻找一个完整的页面"刷新"

所以我有一个标签:

<g:remoteField controller="person" action="updatePerson" id="${personInstance.id}" paramName="search" name="updatePerson" value="${personInstance?.favoriteBreed}" />

在我附加的方法中,我想执行更新域对象的操作,然后刷新整个页面。我已经尝试过在应用程序中渲染和重定向到简单操作,但没有调用任何操作。所以我认为使用remoteField标签是不可能的。

这是真的吗?

为什么通过AJAX重新实现页面的正常行为?为什么不在被调用控制器的末尾调用重定向到正确的操作?

假设您处于showPerson操作产生的视图中。在这个视图中,用一个简单的(不关心params属性,这只是一个例子)调用updatePerson:

<g:Link controller="person" action="updatePerson" id="${personInstance.id}" params="${name: 'search'}">click me</g:link>

并在控制器中执行类似的操作:

def updatePerson = {
  // your own updating stuff
  redirect(action: "show", id: person.id)
}

这不是更容易吗?:)

<g:remoteField />有一个事件onSuccess,可以用来执行您想要的操作。您可以在此处查看更多选项。

尝试(未测试):

<g:remoteField controller="person" action="updatePerson" 
    id="${personInstance.id}" paramName="search" name="updatePerson"    
    value="${personInstance?.favoriteBreed}" onSuccess="reloadPage()" />

您需要创建javascript函数:

function reloadPage() {
  window.location.reload();
}

最新更新