جعل شريط التمرير ينتقل إلى السجل المحدد في TreeView ASP.Net

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

  •  23-09-2019
  •  | 
  •  

سؤال

لدي عنصر تحكم في Treeview يتم ملؤه في وقت التشغيل بهرم من أسماء الموظفين.أضع شريط تمرير CSS في العرض عن طريق وضع تجاوز السعة: تلقائي" في العلامة التي يوجد بها عرض الشجرة.يطلب مني المستخدمون الآن أن أجعل شريط التمرير ينزل في عرض الشجرة حيث يتم تحديد عنصر عرض الشجرة.

كيف أقوم بإنشاء شريط تمرير للانتقال إلى المكان الذي تم فيه تحديد عرض الشجرة؟

ملحوظة:TreeView1.SelectedNode.EnsureVisible();

غير متوفر في asp.net بحاجة إلى طريقة أخرى.

لا يوجد حل صحيح

نصائح أخرى

ستحتاج إلى بعض برامج جافا سكريبت المخصصة وبعض التعليمات البرمجية الخلفية.ابدأ باستخدام طريقة JS الموجودة هنا للحصول على معرف العميل الخاص بـ Treenode:

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 الخاص بك إلى Treenode باستخدام scrollIntoView() طريقة جافا سكريبت:

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