2014-01-20 3 views
-1

У меня есть таблица, написанная в GWT из списка List. Я хочу получить сумму определенной группы элементов.Получение суммы из элемента таблицы gwt

Проблема с этим заключается в том, что значение, которое я хочу сделать суммой, рассчитывается и, следовательно, не может быть получено, если вы не вычислите его до создания Списка.

Мне было интересно, удалось ли это достичь посредством манипуляций с DOM. И если да, то как ?.

Я покажу вам пример:

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

Я хочу, чтобы получить сумму столбца «DATAD», но я не знаю, как я могу это сделать.

Заранее спасибо за ваше время,

Уважения,


Сложного: DATAD значения столбца оно вычисляется и значение приходит из другой системы и ее помещают в таблицу через третий партийная программа; поэтому я не могу получить его значение и использовать его в сумме, чтобы получить значение, которое я хочу.

+0

* Проблема с этим, то, что значение I хотите сделать сумму с ее рассчитанной и, следовательно, недоступной, если вы не вычислите ее до создания Списка. * - Можете ли вы, пожалуйста, продумать это? – sanbhat

ответ

0

Вы должны иметь возможность добавить обработчик событий в виджет таблицы так, чтобы всякий раз, когда данные добавляются/изменяются в виджетах, вы корректируете общее количество. Пожалуйста, дайте более подробную информацию о том, какие виджеты вы используете для представления таблицы.

EDIT: Теперь, когда мы знаем, что вы используете 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, чтобы увидеть, что 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

Смежные вопросы