我想在FramedPanel中包含Grid并使用gxt dnd。

但是,如果我在DragSource中添加FramedPanel:

DragSource source = new DragSource(framedPanel) {
              @Override
              protected void onDragStart(DndDragStartEvent event) {
                super.onDragStart(event);
                event.setData(framedPanel);


              }
            };



当我单击并按住Grid时,DnD起作用。
我对DnD的处理方式仅适用于FramedPanel的标头。

最佳答案

考虑使用Draggable代替DragSource,然后使用带有两个参数的构造函数。这样,您可以将标头指定为“ handle”参数。

Draggable draggable = new Draggable(framedPanel, framedPanel.getHeader());
//assuming GXT 3, just guessing from your post
draggable.addDragStartHandler(new DragStartHandler() {
  public void onDragStart(DragStartEvent event) {
    //...
  }
});


如果必须使用DragSource,则将其子类化以替换Draggable实例,并按照上面的指定创建一个新实例,并在现有DragSource构造函数中进行更改。

10-05 21:13