我有一个从List列表中用GWT编写的表。我想要的是获得某组元素的总和。
这个问题,就是我希望用它的计算得到的值,因此除非你在生成List之前计算它,否则无法获得。
我想知道是否有可能通过DOM操作实现这一点。如果是这样,怎么样?。
我将向您展示一个例子:
DataA DataB DataC DataD
---------------------------------
aaaaa bbbbb ccccc 12
aaaa1 bbbb1 cccc1 15
aaa11 bbb11 ccc11 17
我想获得“DataD”列的总和,但我不知道我该怎么做。
提前感谢您的时间,
亲切的问候,
详细说明:计算DataD列值,该值来自另一个系统,并通过第三方程序放入表中;因此,我无法得到它的价值,并将其用于一个总和,以获得我想要的价值。
答案 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)