2011-09-14 51 views
0

这是一个比方法更重要的方法问题。Grails - 没有页面重新加载的动态文件上传

我有一个主要的窗体/文档,用户可以动态地使用隐藏的iframe附加/上传文件。

每次用户删除/添加文件时,都会通过向iframe提交额外表单将其删除/保留到数据库。之后,我做了一个Ajax调用,并呈现一个包含更新文件列表的新gsp模板。全部没有页面重新加载。 然后,如果表单已成功保存并验证,则上传的文件将与其链接。如果没有,他们会在事后清理一段时间。

我相当满意的结果,但..

我想知道的是,如果这是一个好办法,因为我总是呈现一个新的模板,而不是DOM操作用JavaScript来为用户提供了什么文件处理的动态感觉。我见过的大多数人都这样做。

我似乎无法弄清楚的一件事是如何“本地化”(隐藏它从用户)删除文件,而不从数据库中删除它(没有DOM)。 Atm,如果用户删除了一个文件,但决定不保存主窗体,那么该文件仍然消失。

感谢

回答

0

我不能完全肯定我明白你的问题的最后一部分,但我还是要去采取刺伤它。我的假设,如果用户可以说他们想要删除一个文件,但不保存表单,因此,该文件不会被删除。但是,当发生这种情况时,无论如何您都会从列表中删除该文件,然后重新进行页面刷新。

如果这是正确的理解,我会建议以某种方式表示文件的表示方式,表明它已准备好删除。不要完全删除它。将它变灰,删除线,添加一个图标,表示系统将在您保存时删除此图标。

+0

这是个好主意,但是如果用户同时上传新文件并且文件列表被控制器刷新,那么如何保存一个文件将在保存时被删除的信息(可以说是灰色的)? – Petr

+0

可能是一个隐藏的表单元素,它会在服务器上显示可以传回视图的东西。并且/或者你可以在你的Domain类中加入一个标志来表明这一点。它甚至可以是仅用于显示目的的瞬时值。 – Gregg

+0

我会尽力,谢谢。 – Petr

相关问题