首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT2 ButtonCell在一行中添加事件

GWT2 ButtonCell在一行中添加事件
EN

Stack Overflow用户
提问于 2011-11-13 20:10:53
回答 1查看 403关注 0票数 0

谁能帮帮我。我是gwt的新手,也许这很简单。但我似乎想不通这事...我为单元格表格中的一行创建了两个按钮,每个按钮使用以下方法:

代码语言:javascript
复制
protected void addButtonColumn(String header, final IHasValue<Row, Button> hasVal){
    Column<Row, String> column = new Column<Row, String>(new TextButtonCell()) {
        @Override
        public String getValue(Row object) {
            return ((Button)hasVal.getValue(object)).getText();
        }
    };
    column.setFieldUpdater(new FieldUpdater<Row, String>() {
        @Override
        public void update(int index, Row object, String value) {
            ((Button) hasVal.getValue(object)).click();
        }
    });
    table.addColumn(column, header);
}

我希望每个按钮点击时不同的东西,但它不起作用。我知道我应该在setfieldupdater中做些什么,但我不知道该做什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-14 14:08:36

使用TextButtonCell来包含Button (即小部件)并没有多大意义-让单元格访问数据,并使用ValueUpdater直接基于该数据触发某种行为,不是更容易吗?

单元格不是小部件-它们比小部件简单得多。这主要意味着两件事:他们画得更快,也更愚蠢。这两种情况都是由于使用单个cell实例以略微不同的方式绘制多个数据片段的结果。如果您正在努力为每个元素构建一个按钮,那么使用基于单元格的小部件是没有意义的-您几乎绘制了两次所有内容,并且两全其美(代码很慢,很难使用)。

不要使用附加了ClickHandlerButton,而是使用一些其他抽象来处理单击,比如每行都有一个Command实例,或者更好的是,使用某种类型的处理程序来接受单击的行实例。将FieldUpdater实例作为方法的参数传入可能更有意义(也许可以使IHasValueString上而不是在Button上泛型,这样您的模型就不需要包装小部件)。

(这可能不是直接回答您的问题,而是希望有助于阐明我们为什么使用cells,以及如何最好地编写利用cells的代码。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8111426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档