Гребень Extjs не получит начальное значение, только отображение - PullRequest
0 голосов
/ 28 марта 2011


У меня есть форма с комбо (hiddenName como).Форма загружает свои данные с сервера и автоматически устанавливает «selectedValue».Комбо загружает свое значение с сервера до , а форма загружает свои данные.Если я нажму на submit, displayValue будет отправлено на сервер вместо значения, даже если я установил hiddenName. Но , если я изменю комбо-значение, с этого момента оно будет представлять значение, а не displayValue, как ожидалось.Почему начальное значение, заданное формой, не позволяет комбо-серверу отправлять свое значение?

Это комбо и хранилище:

var store = new Ext.data.JsonStore({
        autoLoad: true,
        url: config.url,
        root: 'data',
        methos:'POST',
        fields:[{name:'userManager_employeeId'},{name:'userManager_userName'}] });

    var combo  = new Ext.form.ComboBox({
        hiddenName:'userManager',
        valueField: 'userManager_employeeId',
        displayField: 'userManager_userName',
        forceSelection: true,
        mode: 'remote',    
        typeAhead: true,
        lazyInit :false,
        lazyRender:false,
        fieldLabel:     config.title,
        emptyText:'Select a value',
        roles:config.roles,

РЕДАКТИРОВАТЬ

Это данные формы:

{
    "data": [
        {
            "employee_employeeId": 3,
            "Affiliate_affiliateId": 8,
            "parent_affiliateId": 8,
            "userManager_employeeId": 1,
            "Affiliate_email": "avi@finexo.co.il",
            "parent_name": "First Affiliate",
            "userManager": "admin",
            "Affiliate_name": "First Affiliate",
            "user_userName": "admin",
            "user_userId": 1
        }
    ]
}

Это комбинированные данные:

{
    "data": [
        {
            "userManager_userName": "admin",
            "userManager_employeeId": 1
        },
        {
            "userManager_userName": "admin2",
            "userManager_employeeId": 4
        }
    ]
}

Это устройство чтения форм:

    reader: new Ext.data.JsonReader({
            root: 'data',
            fields: [{
                name: 'userManager'
            }]
        })

Это данные формы:

{"data":[{"userManager":"admin"}]}

Я также пытался:

{"data":[{"userManager":"1"}]}

Если данные формы «admin», я вижу на дисплее «admin», но отправленное значениетакже «админ».Если данные формы «1», я вижу на дисплее «1» и в значении отправки «1».Как я могу увидеть на дисплее «admin» и передать значение («1»)?Спасибо.

1 Ответ

1 голос
/ 29 марта 2011

Я столкнулся с этой проблемой достаточно, что у меня есть плагин, который я включаю в формы с комбо.В вашем случае вам нужно отключить autoload в магазине вашего комбо.Заполните форму с помощью поля valueField, как во втором примере, который вы предоставили.Затем измените код на стороне сервера, чтобы искать значения valueFields или displayFields, а не просто displayFields.Затем вы можете сделать это, как только ваша форма загрузится:

combo.getStore().load({
   params: { query: combo.getValue()},
   callback: function () { combo.setValue(combo.getValue()) }
});

Это отправит запрос на сервер только для идентификатора 1, и сервер ответит данными для комбо, чтобы исправить его displayField.setValue затем устанавливает displayField и valueField.Это обходной путь, но он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...