2013-08-12 2 views
0

В моем приложении Touch Sencha я заполняю свой контейнер, создавая элементы формы динамически из объекта json.Formfield value из Webservice в Sencha touch

Для TextField Я использую код, как показано ниже:

Ext.getCmp('mytestpanel').add({ 
         xtype: response.screens[index].screenItems[i].xtype, 
         id:response.screens[index].screenItems[i].name, 
         label: response.screens[index].screenItems[i].title, 
         name: response.screens[index].screenItems[i].name 
         } 
        }); 

используется JSON:

{ 
"screens": [ 
     { 
      "screenname": "Screen 1", 
      "screenItems": [ 
       {"xtype": "textfield", "title": "Temperature"," name": "textfield1", "value":"service211"}, 
       {"xtype": "button", "title": "Update", "name": "button1"} 
      ] 
     }, 
     { 
      "screenname": "Screen 2", 
      "screenItems": [ 
       {"xtype": "emailfield", "title": "screen2"," name": "textfield2"}, 
       {"xtype": "checkboxfield", "title": "label3", "name": "textfield13"}, 
       {"xtype": "selectfield", "title": "Submit", "name": "button11"} 
      ] 
     } 
] 

}

мне нужно обновить значение этого текстового поля используя веб-сервис, как показано в json

{"xtype": "textfield", "title": "Temperature", "name": "textfield1", "value": "someservice211"}

Как значения будут в режиме реального времени, как я должен это делать?

+0

В основном вы спрашиваете, как обновить значение TextField температуры? – Viswa

+0

@Viswa Да ..... – Kris

ответ

2

Как насчет использования магазина для чтения json? вы могли бы setInterval к ​​store.load(), а затем добавлять/редактировать динамические элементы на обратный вызов нагрузки:

proxy: { 
    type: 'ajax', 
    url: 'http://URL', 
    reader: { 
     type: 'json', 
     rootProperty: 'screens' 
    } 
}, 

autoLoad: true, 

listeners: { 
    initialize: function() { 
     var interval = setInterval(function() { 
      Ext.StoreMgr.lookup('myStore').load(); 
     }, 2000); 
    }, 

    load: function(st) { 
     var testPanel = Ext.getCmp('mytestpanel'); 
     Ext.each(st, function(record) { 
      var obj = Ext.getCmp(record.get('id')); 
      if (obj) { 
       if (record.get('value')) obj.setValue(record.get('value')); 
      } else { 
       testPanel.add({ 
        xtype: record.get('xtype'), 
        id: record.get('id'), 
        label: record.get('label'), 
        name: record.get('name'), 
        value: record.get('value') 
       }); 
      } 
     } 
    } 
} 

надеюсь, что это helps-

+0

Извините за поздний ответ. Полученный вами ответ кажется уместным. Я расскажу вам о его прогрессе. – Kris