С учетом того, что многие узлы, даже если вы можете найти эффективный способ их отображения, скорее всего, не будут использоваться пользователями. Представьте, что вы пытаетесь прокручивать 35 000 узлов, чтобы найти нужный вам узел! То же самое касается пейджинга. Действительно ли пользователь перешел на страницы 3500 (при условии, что размер страницы равен 10), чтобы найти свою цель? Наверное, нет, и если они это сделают, они, вероятно, не будут слишком счастливы. :)
Вместо этого с большими наборами данных, как это, я считаю, что лучше всего обеспечить некоторый тип пользовательского интерфейса «Фильтр». Что-то, что позволяет вашему пользователю «формировать» доступные данные в более управляемую коллекцию.
Я не уверен, что у вас есть возможность обеспечить фильтрацию (то есть какие поля вы можете фильтровать), но я думаю, что это ваш лучший выбор. Варианты пользовательского интерфейса являются:.
- Что-то вроде RadGrid для ASP.NET AJAX, которая может обеспечить встроенный фильтрации интерфейс, который позволяет пользователям быстро находить значения они заинтересованы в
- Использование клиента в RadTreeView в API-интерфейс и поддержку загрузки по требованию узлов, вы можете создать текстовое поле, которое будет фильтровать узлы в дереве по мере того, как пользователь будет набирать. Вы просто обрабатываете событие onkeyup TextBox, а затем запускаете запрос к веб-службе, чтобы захватить узлы, соответствующие критериям фильтра, и замените коллекцию узлов TreeView на результат.Это сделает намного полезнее, чтобы ваши пользователи могли найти свой целевой узел.
Очевидно, что есть и другие подходы, но, надеюсь, это дает вам некоторые идеи.
Краткий ответ: Для больших наборов данных я бы использовал комбинацию фильтрации в реальном времени и веб-сервисов, чтобы представить более управляемый набор результатов для моих пользователей. Для начальной загрузки я загружал только первые (допустим) 200 узлов, чтобы поддерживать высокую производительность.
Надеюсь, это поможет! -Todd