GXT3 - 可编辑网格:在弹出窗口中显示要编辑的行

时间:2013-07-31 21:15:33

标签: gwt grid gxt

GXT3 - 网格:添加一个带有按钮的列来修改可编辑网格中的行

在示例中,当选择线条时,线条可自动编辑。 http://www.sencha.com/examples/#Exam...oweditablegrid

我希望在单击弹出窗口中显示的编辑按钮时更改行。

TextButtonCell button = new TextButtonCell();
    button.addSelectHandler(new SelectHandler() {

      @Override
      public void onSelect(SelectEvent event) {
        Context c = event.getContext();

        Info.display("Event", "Call the popup here.");
      }
    });
    nameColumn.setCell(button);

有办法吗?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

首先,您可以创建一个可能已创建TextBoxCell的列。 然后,您必须禁用网格的默认onclick可编辑行为。

根据Sencha示例的文件RowEditingGridExample.java,您可以覆盖onClick事件并阻止触发默认代码。

public class RowEditingGridExample extends AbstractGridEditingExample {

    @Override
    protected GridEditing<Plant> createGridEditing(Grid<Plant> editableGrid) {
        return new GridRowEditing<Plant>(editableGrid){

        @Override
        protected void onClick(ClickEvent event) {
            }
        };
    }

}

当您单击textBoxCell单击处理程序时,您可以手动开始编辑。

TextButtonCell button = new TextButtonCell();
button.addSelectHandler(new SelectHandler() {

  @Override
  public void onSelect(SelectEvent event) {
    Context c = event.getContext();

    //Here you can pass a new GridCell like with proper cell index and row index.

    GridCell cell = new GridCell(getRowIndex(), getCellIndex());
    editing.startEditng(cell);

  }
});
nameColumn.setCell(button);

如果要在单独的弹出窗口中显示行编辑器,则必须手动设计它。