【问题标题】:Drag and Drop downlad from GXT grid to Desktop从 GXT 网格拖放下载到桌面
【发布时间】:2012-04-07 13:55:54
【问题描述】:

我正在使用 GXT 进行 UI 开发。我使用 HTML5 将文件从桌面拖动到我的应用程序并上传。但现在我有相反的要求。我想将文件从浏览器拖到桌面,这会将文件下载到桌面。

我知道这只能在 Chrome 中实现。并检查了以下演示: http://www.thecssninja.com/javascript/gmail-dragout

我曾尝试在我的 GXT 应用程序中实现上述代码,但问题是我正在使用支持 DnD 到 TreePanel 的可编辑网格。现在,当我从网格拖动到桌面时,我认为它没有捕获浏览器事件(可能我在这里错了)。

有什么想法,应该怎么做?

谢谢。

下面是我在将数据插入网格后调用的一小段代码。所有记录的 CSS 类名称都为 ".icon"。问题是当我开始拖动时, "dragstart" 没有被调用。有什么建议吗?

注意:当我创建按钮、标签等并使用其他必需参数使它们可拖动=true 时,此代码有效。

 public static native void test(String id)/*-{
var files = $doc.querySelectorAll('.icon');
for (var i = 0, file; file = files[i]; ++i) {
    file.addEventListener("dragstart",function(evt){
        $wnd.alert("Drag Event started.. ");
        evt.dataTransfer.setData("DownloadURL",this.dataset.downloadurl);
    },false);
}

}-*/;

【问题讨论】:

    标签: java html gwt gxt drag-and-drop


    【解决方案1】:

    我用过这个,它成功执行了,不,你应该检查代码中的其他地方。

    【讨论】:

    • harout,你如何在你的 gxt 网格上实现这个?我试过但我找不到处理 gxt 事件 + 脚本事件的方法,以便与网格一起收集以执行下载。你有任何链接或教程,我可以轻松地实现它吗?谢谢
    • Harout 感谢您的评论。如果您能告诉我们应该如何做,那就太好了。或者,如果您可以分享您的一段代码,那么它会更有帮助。谢谢。
    • 向我展示处理此问题的代码以提供建议,因为我现在没有代码
    • 我刚刚用小代码编辑了我的帖子,如果有任何建议,请查看并告诉我。
    • 经过这么多调试后,我知道 GRID 使用其选择模型阻止浏览器触发“dragStart”事件。谁能让我知道我应该写什么,这样 Grid 的 DnD 操作也可以继续工作并且本机浏览器的“dragStart”事件会触发吗?或者,如果我覆盖 GridDragSource 的“DragStart”,那么我将 event.getEvent().getDataTrasnfer() 设为 NULL。知道为什么会这样吗?任何想法,如何让事件的 getDataTrasnfer() 不为空。
    猜你喜欢
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多