Как получить значение из GWT SelectElement?

Я пытаюсь получить значение SelectElement, используя метод getValue() этого класса. Однако, когда я отлаживаю и смотрю, что происходит, значение всегда равно null. Я могу подтвердить, что SelectElement содержит ожидаемый узел HTML при отладке и что один из содержащихся в нем параметров имеет выбранный атрибут.

Вот код, который находит элемент select в DOM и пытается прочитать значение:

SelectElement e = (SelectElement) DOM.getElementById( "sel-" + transaction.getId().toString() ).cast(); 
Boolean isAcknowledged = Enums.TransactionType.ACKNOWLEDGED.equals( e.getValue() );

Как я сказал выше, вызов метода e.getValue() не возвращает значение, но когда я смотрю, что содержится в e, я вижу ожидаемый HTML-узел с одним из выбранных параметров.

<select class="form-control" id="sel-88024">
   <option value="CONSUMED" selected="">Used</option>
   <option value="ACKNOWLEDGED">Received</option>
</select>

Но в getValue() никогда нет значения. Любые идеи были бы хорошы.


gwt
person Miniversal    schedule 10.07.2018    source источник


Ответы (1)


Я думаю, что проблема не связана с GWT. Может ли быть так, что Enums.TransactionType является настоящим Java-Enum, и вам нужно использовать Enums.TransactionType.ACKNOWLEDGED.name().equals(e.getValue())?

person Halko Karr-Sajtarevic    schedule 10.07.2018
comment
Вероятно, вы правы, но, к сожалению, e.getValue() по-прежнему не содержит значения. :( - person Miniversal; 10.07.2018
comment
Я попробовал именно ваш образец, и он работает как шарм. Ваш идентификатор транзакции неверен? - person Halko Karr-Sajtarevic; 10.07.2018
comment
Ну, DOM.getElementById() находит узел в HTML и возвращает то, что я ожидаю, поэтому я не уверен, как мой идентификатор транзакции может быть неправильным. Если бы это было не так, он бы не нашел элемент в HTML, верно? - person Miniversal; 10.07.2018
comment
Я думаю, что, возможно, нашел проблему. Элемент, возвращаемый как e, содержит HTML в том виде, в каком он был изначально отображен, а не текущее состояние HTML. Я должен использовать ссылку на элемент вместо самого элемента. Это означает, что он не привязан к DOM, как я думал. :| - person Miniversal; 10.07.2018