首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TreeGrid中放置标签

在TreeGrid中放置标签
EN

Stack Overflow用户
提问于 2012-11-09 18:10:22
回答 2查看 298关注 0票数 1

我使用的是SmartGWT 3.0,我需要检测TreeGrid中的外部Label,我尝试了很多方法,但都没有成功。在Canvas中,我可以执行drop操作,但TreeGrid不会检测到drop。有没有办法做到这一点?

代码语言:javascript
复制
TreeGrid tileGrid = new TreeGrid();
tileGrid.setAlign(Alignment.CENTER);
tileGrid.setWidth(300);
tileGrid.setHeight(300);

tileGrid.setCanAcceptDrop(true);

tileGrid.addDropHandler(new DropHandler() {

    @Override
    public void onDrop(DropEvent event) {
         Window.alert("drop");
    }
});

Canvas cv = new Canvas();
cv.setBorder("1px solid #CCCCCC");
cv.setWidth(300);
cv.setHeight(300);
cv.setCanAcceptDrop(Boolean.TRUE);

cv.addDropHandler(new DropHandler() {

     @Override
     public void onDrop(DropEvent event) {
         Window.alert("drop event"+event.toString());
     }
});


Label lb = new Label("Drag me");
lb.setCanDrag(true);
lb.setCanDrop(true);
lb.setDragAppearance(DragAppearance.TARGET);

// added the components to a HLayout
panel.addMember(tileGrid);
panel.addMember(cv);
panel.addMember(lb);

panel.draw();
EN

回答 2

Stack Overflow用户

发布于 2012-11-12 17:42:36

我认为在画布的情况下,它可以接受数据丢失时的所有内容。在TreeGrid的情况下,它期望与记录相关的内容...我用覆盖进行了测试

代码语言:javascript
复制
TreeGrid tileGrid2 = new TreeGrid(){
            @Override
            public Boolean willAcceptDrop(){
                return new Boolean(true);
            }
        };

这与this thread有关,在这种情况下,事件被触发,但我们得到了一个javascript错误,因此一种解决方案是从标签中拾取拖动事件,并在运行中创建一个TreeNode或类似的东西,它可以被接受为网格端的拖放数据。希望这能帮上忙。

票数 2
EN

Stack Overflow用户

发布于 2014-01-21 17:42:35

试一试

代码语言:javascript
复制
TreeGrid.addFolderDropHandler();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13305994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档