Java 如何在嵌套的SmartGWT ListGrids之间启用拖放功能

Java 如何在嵌套的SmartGWT ListGrids之间启用拖放功能,java,drag-and-drop,smartgwt,listgrid,Java,Drag And Drop,Smartgwt,Listgrid,我得到了一个ListGrid a,它有行,可以展开以显示类型B的ListGrids。那些ListGrids B也有行,可以展开以显示ListGrids C。 所有ListGrids B都由相同的数据源B提供,该数据源B通过外键链接到数据源A。 类似地,所有ListGrids C都由相同的数据源C提供,该数据源C通过外键链接到数据源B 我只想在所有这些ListC网格之间启用拖放。因此,在ListGrids C初始化期间,我调用这些设置拖放引擎: setCanReorderRecords(true)

我得到了一个ListGrid a,它有行,可以展开以显示类型B的ListGrids。那些ListGrids B也有行,可以展开以显示ListGrids C。 所有ListGrids B都由相同的数据源B提供,该数据源B通过外键链接到数据源A。 类似地,所有ListGrids C都由相同的数据源C提供,该数据源C通过外键链接到数据源B

我只想在所有这些ListC网格之间启用拖放。因此,在ListGrids C初始化期间,我调用这些设置拖放引擎: setCanReorderRecords(true); setCanDragRecordsOut(true); setCanAcceptDroppedRecords(true); setDragDataAction(DragDataAction.MOVE); setCanReorderRecords(真); setCanDragRecordsOut(真); setCanAcceptDroppedRecords(真); setDragDataAction(DragDataAction.MOVE); 但我只能对同一网格中的行重新排序。在网格C之间拖放不起作用。 有人知道我错过了什么吗


谢谢您的帮助。

在要启用拖放的所有组件上设置相同的类型。即,对于C类的所有列表网格,使用以下两种方法:

    public static final String DRAG_AND_DROP_TYPE = "typeC";
    ...
    tileGridOfTypeC.setDropTypes(DRAG_AND_DROP_TYPE);
    tileGridOfTypeC.setDragType(DRAG_AND_DROP_TYPE);
    ...

我正在使用SmartGWT2.5。在这个版本中,我还必须在类型B的ListGrids上启用drag n drop。我还在ListGrids B上添加了一个拖放处理程序,它通过调用event.cancel()来取消任何拖放操作。 这不是一个完美的解决方案,但至少它确实有效