1

我使用 SmartGWT 3.0,我需要在 a 中检测到外部的一滴LabelTreeGrid我尝试了很多方法来做到这一点,但都没有奏效。在一个Canvas我可以做下降,但TreeGrid没有检测到下降。有没有办法做到这一点?

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();
4

2 回答 2

2

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

TreeGrid tileGrid2 = new TreeGrid(){
            @Override
            public Boolean willAcceptDrop(){
                return new Boolean(true);
            }
        };

这与这个线程有关 ,在这种情况下,该事件被触发,但我们得到一个 javascript 错误,因此一种解决方案是从标签中提取拖动事件并动态创建 TreeNode 或类似的东西,可以接受为丢弃网格侧的数据。希望它可以帮助....

于 2012-11-12T09:42:35.970 回答
0

尝试

TreeGrid.addFolderDropHandler();
于 2014-01-21T09:42:35.370 回答