2012-04-27 3 views
1

Я новичок в ExtJS 4.I я использую JSON для заполнения поле со списком, как следует,Json Синтаксический в ExtJS 4

JSON:

{ 
   "Patient": [ 
      { 
         "id": 1, 
         "emergencyPhone": "1234567890", 
         "primaryInsuranceId": { 
            "id": 1 
         }, 
         "secondaryInsuranceId": { 
            "id": 2 
         }, 
         "personalInfo": { 
            "id": 2, 
            "firstName": "James", 
            "lastName": "Anderson", 
            "address": { 
               "state": { 
                  "id": "2", 
                  "stateName": "Alaska", 
                  "code": "AK" 
               }, 
               "zipcode": 12345, 
               "country": "USA", 
               "telephone": "1234567890", 
               "alternatePhone": "1234567890", 
               "faxNumber": "1234567890", 
               "email": "[email protected]" 
            }, 
            "gender": "Male", 
            "dob": "2012-04-02", 
            "ssn": 123456789, 
            "race": "race" 
         }, 
         "clearinghouseId": { 
            "id": 2, 
            "name": "ALPHA Clearing House" 
         }, 
         "provider": [] 
      } 
   ] 
} 

Код:

Ext.define('patientList', { 
    extend: 'Ext.data.Model', 
    fields: ['id', 'personalInfo'] 
}); 

var patient = Ext.create('Ext.data.Store', { 
    model: 'patientList', 
    autoLoad: true, 
    proxy: { 
     type: 'ajax', 
     url: url + '/lochweb/loch/patient/getAll', 
     reader: { 
      type: 'json', 
      root: 'Patient' 
     } 
    } 
}); 

Combo Box

{ 
    xtype: 'combo', 
    fieldLabel: 'Patient', 
    name: "patientId", 
    id: "patientId", 
    queryMode: 'local', 
    store: patient, 
    displayField: 'personalInfo.firstName', 
    valueField: 'id', 
    emptyText: "Select", 
    editable: false, 
    allowBlank: false 
} 

Когда я нажимаю на поле со списком, он показывает FirstName, но после выбора, что, не отображающие в капле down.Any Помощь

Благодаря

+0

Ваш Json не очень хорошо сформирован для данных Combo. Кроме того, я не нашел в вашем Json никакого «терпеливого» корня. Проверьте этот пример: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.field.ComboBox – Natasha

+0

Спасибо за комментарий, я отредактировал этот вопрос, nw json clear .any помочь abot hw заполнить Json в поле со списком – user1321824

+0

Привет, Наташа, Любая помощь, чтобы заполнить поле со списком – user1321824

ответ

2

Изменить Модель так:

Ext.define('patientList', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     { name: 'myId', mapping: 'personalInfo.id' }, 
     { name: 'myFirstName', mapping: 'personalInfo.firstName' } 
    ] 
}); 

Затем измените Combo так:

{ 
    xtype: 'combo', 
    fieldLabel: 'Patient', 
    name: "patientId", 
    id: "patientId", 
    queryMode: 'local', 
    store: patient, 
    displayField: 'myFirstName', // Change This 
    valueField: 'myId',   // Change This 
    emptyText: "Select", 
    editable: false, 
    allowBlank: false 
} 

Подробнее о Mapping и Convert configs.

+0

Спасибо Наташа, это работает – user1321824

+0

Добро пожаловать. – Natasha

Смежные вопросы