Extjs - выпадающий список Отправить значение - PullRequest
2 голосов
/ 24 марта 2011


Прежде чем задавать мой вопрос, я должен упомянуть, что я прочитал каждое сообщение об этой проблеме.
Я отправляю свою форму extjs, используя: form.getForm().getValues() в независимом запросе ajax.

Iне могу отправить мое значение (userManager_userId) в комбо на сервер:

       new Ext.form.ComboBox({
            name: 'userManager_userName',
            valueField: 'userManager_userId',
            hiddenValue : 'userManager_userId',//I want to send this ti the server (Integer)
            displayField: 'userManager_userName'
            ....
    )}

Комбо, предоставляющее / отправляющее отображение, а не его значение.
Следует отметить, что при загрузке я взимаю платуэто с данными с сервера с помощью Ext.data.JsonReader
Спасибо

Обновление

Так что я сделал небольшой тест для вас, чтобы увидеть вживую:
http://fatnjazzy.byethost8.com/ вы можете просмотреть исходный код, чтобы увидеть исходный код js.
Я опубликую его здесь, когда мы закончим.
Сейчас он работает, но форма не инициализирует свои значения.

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Используйте hiddenName вместо или в дополнение к name .Это создаст скрытое поле с таким именем, в котором будет храниться значение valueField текущего выделения.Также обратите внимание, что конфигурация hiddenValue предназначена для установки начального значения скрытого поля и не является объявлением имени поля.

Вот измененное определение ComboBox, в котором будет отправлено значение выбранногозапись userManager_userId через параметр запроса userId :

new Ext.form.ComboBox({
    hiddenName: 'userId',
    valueField: 'userManager_userId',
    displayField: 'userManager_userName',
    // ...
});
2 голосов
/ 24 марта 2011

У вас установлено свойство hiddenName для поля со списком? Когда вы используете hiddenValue, вам нужно использовать hiddenName.hiddenValue просто устанавливает значение по умолчанию для комбо.Установив его, вы не сможете отправить значение на сервер.

Обновление: Поскольку вы используете отдельный запрос Ajax для отправки формы, почему вы используете скрытое поле дляхранить значения?Вы можете получить доступ к значению поля со списком из:

 comboObject.getValue()

Другая возможная причина, по которой ваш form.getForm.getValues ​​() не дает значения комбо, будет вызвана неправильным значением в valueField.В вашем случае у вас есть userManager_userId.Это ваше базовое имя значения данных для привязки к ComboBox?Вот мой пример:

store: new Ext.data.JsonStore({
    fields:['item','value'],                            
    data: [
            {item:'Option 1',value: 'OP1'},
            {item:'Option 2',value: 'OP2'},
            {item:'Option 3',value: 'OP3'}
        ]                   
}),
mode: 'local',
editable: false, 
allowBlank: false,
forceSelection: true,
valueField: 'value',
displayField: 'item',
name:'tt',
id: 'tt'

Здесь значение valueField привязано к полю значения моего магазина.

...