我使用的是SmartGWT 3.0,我需要检测TreeGrid中的外部Label,我尝试了很多方法,但都没有成功。在Canvas中,我可以执行drop操作,但TreeGrid不会检测到drop。有没有办法做到这一点?
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();发布于 2012-11-12 17:42:36
我认为在画布的情况下,它可以接受数据丢失时的所有内容。在TreeGrid的情况下,它期望与记录相关的内容...我用覆盖进行了测试
TreeGrid tileGrid2 = new TreeGrid(){
@Override
public Boolean willAcceptDrop(){
return new Boolean(true);
}
};这与this thread有关,在这种情况下,事件被触发,但我们得到了一个javascript错误,因此一种解决方案是从标签中拾取拖动事件,并在运行中创建一个TreeNode或类似的东西,它可以被接受为网格端的拖放数据。希望这能帮上忙。
发布于 2014-01-21 17:42:35
试一试
TreeGrid.addFolderDropHandler();https://stackoverflow.com/questions/13305994
复制相似问题