2011-09-14 49 views
0

這是一個比方法更重要的方法問題。Grails - 沒有頁面重新加載的動態文件上傳

我有一個主要的窗體/文檔,用戶可以動態地使用隱藏的iframe附加/上傳文件。

每次用戶刪除/添加文件時,都會通過向iframe提交額外表單將其刪除/保留到數據庫。之後,我做了一個Ajax調用,並呈現一個包含更新文件列表的新gsp模板。全部沒有頁面重新加載。 然後,如果表單已成功保存並驗證,則上傳的文件將與其鏈接。如果沒有,他們會在事後清理一段時間。

我相當滿意的結果,但..

我想知道的是,如果這是一個好辦法,因爲我總是呈現一個新的模板,而不是DOM操作用JavaScript來爲用戶提供了什麼文件處理的動態感覺。我見過的大多數人都這樣做。

我似乎無法弄清楚的一件事是如何「本地化」(隱藏它從用戶)刪除文件,而不從數據庫中刪除它(沒有DOM)。 Atm,如果用戶刪除了一個文件,但決定不保存主窗體,那麼該文件仍然消失。

感謝

回答

0

我不能完全肯定我明白你的問題的最後一部分,但我還是要去採取刺傷它。我的假設,如果用戶可以說他們想要刪除一個文件,但不保存表單,因此,該文件不會被刪除。但是,當發生這種情況時,無論如何您都會從列表中刪除該文件,然後重新進行頁面刷新。

如果這是正確的理解,我會建議以某種方式表示文件的表示方式,表明它已準備好刪除。不要完全刪除它。將它變灰,刪除線,添加一個圖標,表示系統將在您保存時刪除此圖標。

+0

這是個好主意,但是如果用戶同時上傳新文件並且文件列表被控制器刷新,那麼如何保存一個文件將在保存時被刪除的信息(可以說是灰色的)? – Petr

+0

可能是一個隱藏的表單元素,它會在服務器上顯示可以傳回視圖的東西。並且/或者你可以在你的Domain類中加入一個標誌來表明這一點。它甚至可以是僅用於顯示目的的瞬時值。 – Gregg

+0

我會盡力,謝謝。 – Petr

相關問題