Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Кэширование данных для DataGridView


Автор: DZeus 7.8.2008, 10:44
Имеется грид с большими объёмами данных. При некотором событии (смене значения comboBox) контрола отдельного от грида, происходит перезаполнение грида новыми данными, что вызывает задержу работы приложения на срок от 10 до 20 секунд...
Вопрос: Как правильно, с вашей точки зрения, организовать загрузку данных в грид? Может паттерны есть готовые?

Мне пока в голову ничего не приходит кроме 2 вариантов:
1. Заливка N - первых записей чтобы отобразить видимую часть грида и в отдельном потоке залить оставшуюся часть данных
2. Заливка N - первых записей чтобы заполнить видимую часть грида (+ несколько записей) и дозаливка порциями в отдельном потоке при скроллинге грида

И как быть с "быстрым" поиском да и вобще с поиском по такому гриду?

Автор: Partizan 7.8.2008, 10:47
DZeus, для этого в DataGridView существует виртуальный режим...

Автор: DZeus 8.8.2008, 09:39

http://msdn.microsoft.com/en-us/library/ms171624.aspx

На данный момент удовлетворяет моим потребностям, вот только пока неясно как быть с поиском по такому гриду

Автор: Partizan 8.8.2008, 10:47
DZeus, никак...поиск в таком случае логичнее проводить в самом источнике данных, а не в гриде...ибо грид - это всего лишь представление, причём в виртуальном режиме это представление оботражает только некоторую их часть

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)