This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

IHierarchicalEnumerable.GetHierarchyData أسلوب

Visual Studio 2010

تقوم بإرجاع بيانات هرمية العنصر للمحدد تعداد العنصر.

مساحة الاسم:  System.Web.UI
التجميع:  System.Web (في System.Web.dll)

IHierarchyData GetHierarchyData(
	Object enumeratedItem
)

المعلمات

enumeratedItem
النوع: System.Object
Object الذي إلى العودة IHierarchyData.

القيمة المُرجعة

النوع: System.Web.UI.IHierarchyData
IHierarchyData المثيل الذي يمثل Objectالتي تم تمريرها إلى GetHierarchyDataأسلوب.

بشكل عام، للعملاء الذين يستخدمون IHierarchicalEnumerableاسترداد مجموعات IEnumeratorالكائن قبل استدعاء GetEnumeratorالأسلوب، ثم يكرر خلال المكالمة والتعداد GetHierarchyDataالأسلوب تشغيل كل عنصر قائمة تعداد إلى استرداد IHierarchyDataالكائن.

يوضح المثال تعليمات برمجية التالي كيفية استخدام عنصر تحكم حدود بيانات هرمية في ASP.NET IHierarchyDataالكائن في بيانات العودية-حدود. أسلوب عناصر الموجودة في IHierarchicalEnumerableالكائنات التي تم تعدادها، و لكل IHierarchyDataالكائن هو استرداد باستخدام GetHierarchyDataالأسلوب. وأخيراً، HasChildrenالخاصية هو التحقق لمعرفة ما إذا كان العودية هو الضرورية. هذا مثال للتعليمة البرمجية هي جزء من مثال أكبر متوفر لفئة HierarchicalDataBoundControl.


private void RecurseDataBindInternal(TreeNode node, 
    IHierarchicalEnumerable enumerable, int depth) {                                    

    foreach(object item in enumerable) {
        IHierarchyData data = enumerable.GetHierarchyData(item);

        if (null != data) {
            // Create an object that represents the bound data
            // to the control.
            TreeNode newNode = new TreeNode();
            RootViewNode rvnode = new RootViewNode();

            rvnode.Node = newNode;
            rvnode.Depth = depth;

            // The dataItem is not just a string, but potentially
            // an XML node or some other container. 
            // If DataTextField is set, use it to determine which 
            // field to render. Otherwise, use the first field.                    
            if (DataTextField.Length > 0) {
                newNode.Text = DataBinder.GetPropertyValue
                    (data, DataTextField, null);
            }
            else {
                PropertyDescriptorCollection props = 
                    TypeDescriptor.GetProperties(data);

                // Set the "default" value of the node.
                newNode.Text = String.Empty;                        

                // Set the true data-bound value of the TextBox,
                // if possible.
                if (props.Count >= 1) {                        
                    if (null != props[0].GetValue(data)) {
                        newNode.Text = 
                            props[0].GetValue(data).ToString();
                    } 
                }
            }

            Nodes.Add(rvnode);                    

            if (data.HasChildren) {
                IHierarchicalEnumerable newEnumerable = 
                    data.GetChildren();
                if (newEnumerable != null) {                            
                    RecurseDataBindInternal(newNode, 
                        newEnumerable, depth+1 );
                }
            }

            if ( _maxDepth < depth) _maxDepth = depth;

        }
    }
}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0
إظهار: