2015-06-22 6 views
0

У меня есть простая сетка без прямого подключения к любой таблице базы данных. Просто дни mounth в сырых и людей в колонках (скажем, 31 x 20). В процедурах инициализации я читаю данные из некоторых таблиц, вычисляю и записываю их в эту сетку. Затем я должен вычислить массу индексов, сделать некоторые суммы с помощью сырых, столбцов и их части. Просто статистика.ExtJS и простая панель сетки

Нет проблем с чтением из ячеек сетки, это очень быстро. У меня проблема с записью данных в ячейки. Например. Процедура заполнения этой сетки:

days = Ext.getStore('StoreDays').getRange(); 
employees = Ext.getStore('StoreTeam').getRange(); 
Ext.each(days, function (day) { 
    Ext.each(persons, function (guy) { 
     tmp = day.get('from'); 
     day.set('start_' + persons.data.prs_numer, start); 

     ... and 4 additional SET operations to grid cells 
    }); 
}); 

И эта процедура работает более 3 минут !!! Я не знаю, почему и как писать хороший код, чтобы нормально писать эти данные. Будьте так добры и подскажите мне КАК! Кроме того, я не могу обновить, например. каждое сырое сырье после сырых настроек, как я хочу. Вы бы так любезны мне рассказать?

ответ

1

Обновление ячейки может означать, что сетка должна обновляться, поэтому она делает это 31x20x5 (31 строка, 20 столбцов, 5 раз на ячейку) раз!

Вместо этого:

store.suspendEvents(); 
// Do your update 
store.resumeEvents(); 
grid.getView().refresh(); 
+0

Нет, к сожалению, это не решение моей проблемы. Время все равно. И эта сетка подготовлена ​​с помощью плагина celledit, чтобы пользователь мог исправить некоторые ячейки. Существует также список для событий «beforedit» и «afteredit». Я установил точки останова в этом evets, и я знаю, что эти события не используются, когда программа создает мои две петли. Когда я использовал отладчик, я вижу, что браузер «зависает» в течение этих 3 минут. – Krzys77

+0

Затем я предлагаю вам опубликовать рабочий тестовый пример, иначе я не знаю, что вы делаете. –

+0

Благодарим вас за информацию, я могу опубликовать ее, но это приложение является частью более сложной системы, поэтому будет проблемой запускать его без среды и базы данных. Я могу попытаться подготовить эту часть приложения с проблемной сеткой и позволить ей работать с некоторыми статическими данными. Правильно? – Krzys77

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