从gwt表元素中获取总和

时间:2014-01-20 16:36:41

标签: java gwt

我有一个从List列表中用GWT编写的表。我想要的是获得某组元素的总和。

这个问题,就是我希望用它的计算得到的值,因此除非你在生成List之前计算它,否则无法获得。

我想知道是否有可能通过DOM操作实现这一点。如果是这样,怎么样?。

我将向您展示一个例子:

DataA    DataB    DataC    DataD
---------------------------------
aaaaa    bbbbb    ccccc    12
aaaa1    bbbb1    cccc1    15
aaa11    bbb11    ccc11    17

我想获得“DataD”列的总和,但我不知道我该怎么做。

提前感谢您的时间,

亲切的问候,


详细说明:计算DataD列值,该值来自另一个系统,并通过第三方程序放入表中;因此,我无法得到它的价值,并将其用于一个总和,以获得我想要的价值。

1 个答案:

答案 0 :(得分:0)

您应该能够在表的小部件中添加一些事件处理程序,这样无论何时在小部件中添加/更改数据,您都可以调整总数。请提供有关您用来表示表格的小部件的更多信息。

编辑: 既然我们知道你正在使用HTMLLayoutContainer,我认为DataD正在代码中超出你控制范围的地方。你可以做的是添加事件处理程序来处理add remove etc事件。例如,您可以执行以下操作:

    //Your container
    HtmlLayoutContainer c = new HtmlLayoutContainer(templates.getTemplate());

    c.addAddHandler(new AddEvent.AddHandler() {
        @Override
        public void onAdd(AddEvent event) {
            //Do proper exception handling, check if it is the right widget for dataD, do the needed calculations etc
            sum += Double.parseDouble(((HTML)event.getWidget()).getHTML());                
        }
    });

    c.addRemoveHandler(new RemoveEvent.RemoveHandler() {
        @Override
        public void onRemove(RemoveEvent event) {
            //handle all conditions like in onAdd in AddHandler above
            sum -= Double.parseDouble(((HTML)event.getWidget()).getHTML());
        }
    });

您可以查看API以查看最符合您需求的精确事件(http://dev.sencha.com/deploy/gxt-3.0.0/javadoc/gxt/com/sencha/gxt/widget/core/client/container/HtmlLayoutContainer.html