2015-04-17 3 views
0

У меня есть цикл:Добавить ярлыки на панель динамически не освежает панель

for (var key in myMap) { 
          if (myMap.hasOwnProperty(key)) { 
           propertiesPanel.add(new Ext.form.Label({ 
            text: key+':'+myMap[key] 
           })); 
           propertiesPanel.doLayout(); 

          } 
         } 

, но если у меня есть 500 ключей в HashMap MyMap, это добавит все ярлыки на панель, и в процессе обновления конца происходит. Но я хочу постепенно добавлять процесс добавления. Как я могу это сделать?

ответ

1

Вместо петли, попробуйте рекурсивную функцию

addFields(500); //Adding 500 fields 
fieldsAdded = 0 
addFields = function(fieldCount) { 
    propertiesPanel.add(new Ext.form.Label({ 
     text: 'Some text' 
    })); 
    propertiesPanel.doLayout(); 
    fieldsAdded++; 
    if (fieldsAdded < fieldCount) { 
     Ext.Function.defer(function() { 
      addFields(fieldCount) 
     }, 100, this); 
    } 
} 
+0

благодаря @newmount. он отлично работает! – coenni