Как получить значение ячейки CellTable

Я работаю над приложением GWT, которое использует CellTable для отображения двух столбцов для номинала и количества. Значения номинала недоступны для редактирования, в то время как значения количества доступны для редактирования.

Я предполагаю, что если пользователь выберет, например, 5 для номинала и 20 для количества, текстовое поле для общего количества должно автоматически заполняться 5 * 20 = 100.

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

PS: все значения хранятся в таблице базы данных.


person CodeMarshal    schedule 17.01.2014    source источник


Ответы (1)


Вы всегда можете прикрепить selectionModel к таблице ячеек, чтобы получить текущую выбранную строку, а затем получить текущий выбранный объект и, в свою очередь, их значения. Я не совсем уверен в следующем утверждении, но вы также можете использовать FieldUpdater. См. документы GWT здесь

Образец :

Модель выбора:

SingleSelectionModel<Contact> selectionModel = new SingleSelectionModel<Contact>();
    table.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
      public void onSelectionChange(SelectionChangeEvent event) {
        Contact selected = selectionModel.getSelectedObject();
        if (selected != null) {
          Window.alert("You selected: " + selected.name);
        }
      }
    });

Обновление поля:

// Add a field updater to be notified when the user enters a new name.
    nameColumn.setFieldUpdater(new FieldUpdater<Contact, String>() {
      @Override
      public void update(int index, Contact object, String value) {
        // Inform the user of the change.
        Window.alert("You changed the name of " + object.name + " to " + value);

        // Push the changes into the Contact. At this point, you could send an
        // asynchronous request to the server to update the database.
        object.name = value;

        // Redraw the table with the new data.
        table.redraw();
      }
    });
person Onkar    schedule 18.01.2014
comment
Хорошо, я попробую позже и дам отзыв. Спасибо. - person CodeMarshal; 18.01.2014
comment
@CodeMarshal не для того, чтобы набрать повторений, но если вы отметите его как принятый и / или проголосуете, он больше не будет отображаться как открытый вопрос, и другим парням, у которых есть такие же сомнения, будет оказана помощь ... - person Onkar; 19.01.2014