2012-09-05 23 views
0

我不是在尋找div更新。我在尋找一個完整的網頁「刷新」Grails remoteField - 我可以調用渲染/重定向嗎?

所以我有一個標籤:

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

在我的連接方法,我想執行更新域對象的動作,然後刷新整個頁面。我已經嘗試了渲染和重定向到應用程序中的簡單操作,但沒有任何操作。所以我認爲這是不可能的remoteField標籤。

這是真的嗎?

回答

0

爲什麼通過AJAX重新實現頁面的正常行爲?你爲什麼不直接調用重定向到被調用控制器末尾的正確動作?

假設您處於showPerson操作的視圖中。這種觀點認爲,調用的updatePerson用一個簡單的(不關心的PARAMS屬性,這只是一個例子):

<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) 
} 

」不是個更容易嗎? :)

+0

嗯,是的,在技術上。但我需要一個文本字段,以便對數據庫進行AJAX調用以立即更新。所以正常的文本字段是(我認爲?)出了問題。 – user82302124

+0

我明白了,但你說的是整頁刷新。所以,AJAX變得沒有用,不是嗎? – lucke84

+0

我想 - 這是一個奇怪的情況。你是100%的權利,但。 – user82302124

0

有事件onSuccess可以用來做你想做的事情。您可以查看更多選項here

嘗試(未測試):

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

而且你需要創建JavaScript函數:

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