2014-01-20 75 views
-1

我有一個從GWT列表中寫入的表格。我想要的是獲得一組元素的總和。從gwt表格元素獲取總和

這個問題,它是我想要做它的計算的總和的價值,因此無法獲得,除非你在生成列表之前計算它。

我想知道是否有可能通過DOM操作來實現這一點。如果是這樣,怎麼樣?

我會告訴你一個例子:

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

我想「DataD」列的總和,但我不知道我怎麼能做到這一點。

預先感謝您的寶貴時間,

親切的問候,


說明一下:DataD列其計算值和值來自另一個系統及其置於表的通過第三派對節目;因此我無法得到它的價值,並用它來獲得我想要的價值。

+0

*與此問題,那就是價值我要計算它的總和,因此除非在生成List之前計算它,否則無法獲得。* - 請您詳細說明這一點嗎? – sanbhat

回答

0

您應該可以向表格的小部件添加一些事件處理程序,以便每當在小部件中添加/更改數據時,都會調整總數。請提供更多關於您用於表示表格的小部件的信息。

編輯: 現在我們知道您正在使用HTMLLayoutContainer,我假定DataD正在被代碼中的控制點之外的地方佔據。你可以做的是添加事件處理程序來處理添加刪除等事件。例如,你可以不喜歡下面:

//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來看看exactl活動滿足您的需求最好的(http://dev.sencha.com/deploy/gxt-3.0.0/javadoc/gxt/com/sencha/gxt/widget/core/client/container/HtmlLayoutContainer.html

+0

我使用的是HtmlLayoutContainer,它是一個GXT Sencha 3.0小部件。 – Catersa