如何在嵌套的SmartGWT ListGrid之间启用拖放

时间:2012-12-06 17:07:11

标签: java drag-and-drop smartgwt listgrid

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

我想在所有ListGrids C之间启用拖放操作。因此,在ListGrids C初始化期间,我调用它们来设置拖放引擎:

    setCanReorderRecords(true);
    setCanDragRecordsOut(true);
        setCanAcceptDroppedRecords(true);
        setDragDataAction(DragDataAction.MOVE);
但我只能在同一网格中重新排序行。在网格之间拖动n不起作用。 有人知道我错过了什么吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我正在使用SmartGWT 2.5。在这个版本中,我还必须在类型B的ListGrids上启用拖放功能。我还在ListGrids B上添加了一个drop handler,它通过简单地调用event.cancel()来取消任何drop操作。 这不是完美的解决方案,但至少它确实有效。