Создание полосы прокрутки для перехода к выбранной записи в TreeView ASP.Net

StackOverflow https://stackoverflow.com/questions/2344919

  •  23-09-2019
  •  | 
  •  

Вопрос

У меня есть элемент управления в виде дерева, который во время выполнения заполняется пирамидой имен сотрудников.Я поместил полосу прокрутки 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"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top