Проблема выбора загрузки RadTreeView по требованию
-
19-09-2019 - |
Вопрос
В настоящее время я использую RadTreeView и только что переключился на использование Load-On-Demand (ServerSideCallback) для повышения производительности.На каждом узле я использую RadContextMenu, чтобы открыть RadWindow.В RadWindow я обновляю информацию об узле, который я выбрал в RadTreeView (например, меняю его имя и т.д.).Когда я закрываю RadWindow, я запускаю повторную привязку RadTreeView (поскольку я внес изменения и хочу получить самые свежие данные).Моя проблема в том, что когда я нахожусь на 4 или 5 уровнях вглубь дерева, у меня нет возможности повторно выбрать узел, с которого я пришел.Это было легко, когда я не использовал Load-On-Demand, поскольку все узлы были всего лишь частью дерева.Как я могу это сделать теперь, когда я использую Load-On-Demand?
Я уже написал метод для выполнения работы по получению ВСЕХ родительских идентификаторов, которые ведут к рассматриваемому узлу.Например, для данного дерева:
A
|__ B
|__ C
|__ D
|__ E
|__ F
Допустим, после повторной привязки я захотел вернуться к "F", у меня уже есть метод, который возвращает "A, B, F", который является полным путем обратно к "F".
Спасибо, Брайан
Решение
В этом случае вам нужно установить ExpandMode для всех родительских элементов этого узла в значение ClientSide.В противном случае первый родительский элемент не будет расширен (в этом заключается идея загрузки по требованию), и рассматриваемый узел не будет виден.
В качестве альтернативы, вы можете найти первого родительского элемента и вызвать его метод expand() javascript, затем в событии OnClientNodePopulated найдите следующего родительского элемента и вызовите его метод expand() и так далее, пока не доберетесь до нужного узла.