2013-08-13 24 views
10

Mam wiele pól tekstowych dla danych użytkownika. i chcę ustawić go z DB.jak ustawić wartość dla pola tekstowego extjs?

items: [{ 
         xtype: "form", 
         bodyPadding: 5, 
         border: false, 
         defaults: { 
          xtype: "textfield", 
          inputType: "text", 
          anchor: "100%" 
         }, 
         items: [{ 
          fieldLabel: 'Username:', 
          readOnly: true, 
          value: 'Admin', 
          name: "username" 
         }, { 

mam klasa zewnętrzna o nazwie openDB.js metodą getUserByUsername() tutaj jest mały jak jego kod zostanie wykorzystany w innym świetle i to działa, ale moim zdaniem actuall nie mogę ustawić wartość pola tekstowego. pomóż, jak to zrobić?

openDB.getUserByUsername(user.username).then(function(userDetails) { 
      me.setTitle("Welcome " + userDetails.mail + "!"); 
     }); 

chcę zrobić coś takiego z value: 'Admin' i tak dalej ...

znalazłem jakąś metodę na Sencha Forum, ale można go używać ??

setValue: function(value) { 
     var me = this; 
     me.setRawValue(me.valueToRaw(value)); 
     return me.mixins.field.setValue.call(me, value); 
    }, 

Odpowiedz

30

po kilku godzinach walki z tym -> Najlepszym rozwiązaniem EVER:

items: [{ 
         fieldLabel: 'Username:', 
         id: 'usernameID', 
         readOnly: true, 
         value: user.username, 
         name: "username" 
}] 
... 
var name = Ext.getCmp('usernameID').setValue('JohnRambo'); 
+1

Doskonałe, jeśli masz ich kilka, możesz: Ext.Object.each (wartości, funkcja (klucz, wartość) {Ext.getCmp (klucz) .setValue (wartość);}); – dviramontes

+0

Działa jak urok! Cieszę się, że mogę głosować! – Hari

+0

Działa jak czar !! Dzięki stary. – Neotrixs

1

Dlaczego nie wystarczy skonfigurować model i przechowywać dla formularza i użyć metody loadRecord?

+0

loadRecord function() spodziewa się, że pojedynczy zapis jest prawidłowy? Stan Ext.store, dane mogą być dessimilar od danych formularza. – dviramontes