2012-02-16 4 views
0

У меня есть комбо, заполненное именами - каждый с уникальным идентификатором, который не отображается - только имя отображается.extJS combobox setValue() но сообщение ID

Когда я вручную выбираю из комбо и представляю - форма POST - это имя идеального имени.

Однако мне нужно установить значение комбо динамически при некоторые обстоятельства и сделать по телефону SetValue («Name»), но когда я POST значение ID выходит как имя строки, установленные SetValue()

Как установить имя (или идентификатор), но POST ID и показать имя в комбо?

Я попытался назвать setRawValue() при прохождении ID в надежде на контроль будет переводить и показывать текстовую форму -., Но не кости :(

ответ

0

Вы setValue() и setRawValue() обратной Используйте setValue('id'), чтобы установить значение COMBOBOX , он должен автоматически обновлять отображаемое значение, если вы используете визуализатор в поле со списком конфигурации.

Думает о setRawValue() в setDisplayValue().

+0

Я должен реализовать пользовательский визуализатор? Но это до сих пор вызывает textfiel d, чтобы показать идентификатор имени. EDIT | Исправление это, похоже, работает, кроме начального setValue(). В первый раз, когда я динамически устанавливаю значение, ID отображается в текстовом поле - каждый раз после этого он работает красиво. Я использую 3.2.1 - Интересно, если это ошибка или я не реализовал рендерер в конфигурации, как вы предлагаете - что бы это даже выглядело? –

+0

Не понял, что это было не 4.x. Возможно, вам не придется реализовывать собственный рендерер, я был потому, что я использовал комбо в панели редактирования редактора, для этого был рендеринга. Вероятно, причина, по которой она не загружается в первый раз, связана с тем, что комбо еще не загрузило хранилище. Мне не все знакомы с 3.2.1, но если бы я попытался установить значение сразу в 4.x, я бы установил для хранилища combobox 'autoload: true', а затем поместил начальный вызов' setValue() 'внутри обратного вызова. – Geronimo

+0

Кажется, сделал трюк ... очень странно, что я мог поклясться, что у меня была autoLoad: правда где-то там. Anycase большое спасибо :) –