Создание полосы прокрутки для перехода к выбранной записи в TreeView ASP.Net
Вопрос
У меня есть элемент управления в виде дерева, который во время выполнения заполняется пирамидой имен сотрудников.Я поместил полосу прокрутки CSS в представление, поместив overflow:auto в тег, где находится древовидное представление.Теперь пользователи просят меня опустить полосу прокрутки в древовидном представлении, где выбран элемент древовидного представления.
Как сделать полосу прокрутки, чтобы перейти к месту, где было выбрано древовидное представление?
Примечание:TreeView1.SelectedNode.EnsureVisible();
недоступен в asp.net, нужен другой способ.
Нет правильного решения
Другие советы
Вам понадобится собственный JavaScript и некоторый код.Начните с использования найденного метода JS здесь чтобы получить идентификатор клиента узла дерева:
function GetTreeNodeID(nodeTooltip)
{
var tree = document.getElementById(TreeView.ClientID); // Change TreeView ClientID.
var treeLink = tree.getElementsByTagName('A');
for(var element in treeLink)
if((nodeTooltip == treeLink[element].title) && (treeLink[element].title != ""))
return treeLink[element].id;
}
Затем в своем коде вы можете зарегистрировать сценарий запуска для прокрутки вашего div до узла дерева, используя scrollIntoView()
метод javascript:
Dim script As String = String.Format("var treeNode = GetTreeNodeID('{0}'); treeNode.scrollIntoView();", myTreeNode.Tooltip)
Page.ClientScript.RegisterStartupScript("scrollScript", script)
Следующий JavaScript должен помочь:
var selected = document.getElementById(node_id);
if (selected) {
selected.scrollIntoView(true);
}
Если выбор узла вызовет обратную передачу, попробуйте:
<%@ Page Title="" Language="C#" MaintainScrollPositionOnPostback="true"