GXT EditorGrid:逐个单元选择单元格编辑器类型

发布于 2024-11-28 02:29:54 字数 157 浏览 1 评论 0原文

GXT EditorGrid 提供了一种为列设置编辑器类型的机制。

是否可以逐个单元地定义编辑器类型?

对于好奇的人:

我需要创建一个转置表;列变成行,行变成列。在这种情况下,一列(从普通表的角度来看)将具有各种编辑器类型,而行将具有相同的编辑器类型。

GXT EditorGrid provide a mechanism to set a type of editor for a column.

Is there anyway to define the editor type on a cell by cell basis?

For the curious minds:

I need to create a transposed table; the column become the row and the row is the column. That being the case, a column (from a normal table point of view) will have various editor type, whereby a row will have identical editor type.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野心澎湃 2024-12-05 02:29:54

基本上,您必须处理 BeforeEdit 事件并设置编辑器。这是一个基类,您可以从中实现网格:

public abstract class AnyEditorGrid<T extends ModelData> extends EditorGrid<T> {

    public AnyEditorGrid(final ListStore<T> listStore, final ColumnModel columnModel) {
        super(listStore, columnModel);
        addListener(Events.BeforeEdit, new Listener<GridEvent<T>>() {
            @Override
            public void handleEvent(final GridEvent<T> be) {
                final CellEditor editor = getEditor(be.getRowIndex(), be.getColIndex(), be.getModel());
                if (editor != null) {
                    getColumnModel().setEditor(be.getColIndex(), editor);
                } else {
                    be.setCancelled(true);
                }
            }
        });
    }

    protected abstract CellEditor getEditor(int rowIndex, int colIndex, T model);

}

basically, you have to handle the BeforeEdit event and set the editor. Here is a base class from which you can implement your grid:

public abstract class AnyEditorGrid<T extends ModelData> extends EditorGrid<T> {

    public AnyEditorGrid(final ListStore<T> listStore, final ColumnModel columnModel) {
        super(listStore, columnModel);
        addListener(Events.BeforeEdit, new Listener<GridEvent<T>>() {
            @Override
            public void handleEvent(final GridEvent<T> be) {
                final CellEditor editor = getEditor(be.getRowIndex(), be.getColIndex(), be.getModel());
                if (editor != null) {
                    getColumnModel().setEditor(be.getColIndex(), editor);
                } else {
                    be.setCancelled(true);
                }
            }
        });
    }

    protected abstract CellEditor getEditor(int rowIndex, int colIndex, T model);

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文