GXT - Разозлился с ComobBox в сетке (разные метки и значения отображения) - PullRequest
1 голос
/ 30 апреля 2011

Я пытаюсь добавить CobmoBox в EditorGrid У меня есть класс Vehicle с полями Integer vehicleId; Струнная тарелкаНет; Integer vehicleType; // 1 = Автомобиль, 2 = Грузовик

Я хочу, чтобы в поле со списком отображался тип транспортного средства в текстовой форме, т.е., если vehicleType равен 1, будет отображаться «Car». И когда пользователь выбирает любую другую опцию - например, «Грузовик», соответствующее целое значение должно быть введено в bean-компонент.

Это довольно стандартный материал со старым JSP и HTML. Однако я не мог найти простой способ сделать это в Ext GWT.

1 Ответ

0 голосов
/ 25 мая 2011

Если вы используете GXT ComboBox, самый простой способ - создать модель, представляющую объект вашего автомобиля, если вы этого еще не сделали. Это в основном класс, который расширяет класс BaseXodelData GXT.

Когда у вас есть модель, вы создаете поле со списком такого типа:

ComboBox<VehicleModel> box = new ComboBox<VehicleModel>();

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

box.setDisplayField("field name for display");
box.setValueField("field name for value");

Когда вы загрузите магазин моделей автомобилей, GXT позаботится обо всем остальном. Однако вам необходимо преобразовать модель обратно в сам объект транспортного средства, чтобы сохранить его.

...