2010-10-18 2 views
2

Я привязываю много данных к элементу управления TreeView, поскольку данные являются иерархией естественной категории. Проблема в том, что его много. Мне удалось удалить много служебных данных, привязав только те узлы, которые появляются в видимом дереве, но это все еще оставляет много в ViewState и др.Лучше, чем TreeView

У кого-нибудь есть метод или альтернативный контроль для улучшения такого рода проблем с производительностью, пожалуйста?

Я думал о попытке унаследовать управление TreeView и сбросить его ViewState значения в Sesssion и обратно - но это довольно хак я действительно не имею времени, прямо сейчас ...

+0

приятный вопрос .. –

ответ

0

помимо решения динамической загрузки древовидном на расширение, попробуйте ViewStateCompression для повышения ViewState, использовать Asp.net кэширование для кэширования выводимых данных или просто кэшировать объекты, динамически добавлять объекты в кэш с помощью генерации ключей, как «tree_» & родителей , Объекты кэша распределяются между сеансами, поэтому это будет даже более полезно. Надеюсь, это поможет.

2

Да .. . вы можете использовать по требованию Загрузка или отложенной загрузки Tree View Items

т.е.

1 показывать только узлы корневого уровня, как в проводнике Windows.

2- когда пользователь щелкает узел, а не только получает дочерние узлы и показывает.

Таким образом вы увидите только те узлы, которые пользователь запросил.

, и вы можете дать чекбокс, в котором, скажем, «ПОКАЖИТЕ ВЕСЬ ДЕРЕВО», очевидно, потребуется больше времени, чтобы показать.

можно также реализовать функцию поиска Node, но, пожалуйста, помните дерево Specilized образуют граф, так что используйте надлежащий алгоритм grpah во время нахождения узла, как (BFS или ДФС)

вы также можете кэшировать результаты узлов, но это должно выполняться только в том случае, если ваше дерево не используется для обновления иерархии.

+0

Спасибо, но это то, что код уже делает, и все еще генерирует довольно много viewstate! –

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