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.

HierarchicalDataBoundControl.PerformDataBinding أسلوب

Visual Studio 2010

An of بيانات صفوف.

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

protected internal virtual void PerformDataBinding()

The DataBind خاصية هو HierarchicalDataBoundControl أو an فارغ سلسلة (""). PerformDataBinding التي تم تمريرها إلى DataBindingتحديد الطريقة التي يجب تنفيذها ومصدر البيانات بعض العمل الإضافي أثناء يتم الآن استرداد البيانات? لتمكين ترحيل الصفحات أو فرز من خلال البيانات المستردة، ولكن البيانات لا يعتمد عنصر تحكم مصدر القدرة المطلوبة.DataBound

The HierarchicalDataBoundControl كائن overrides the PerformDataBinding أسلوب إلى ensure that the PerformSelect خاصية of its associated PerformSelect عنصر تحكم هو التعيين قبل retrieving بيانات.

قبل the PerformDataBinding أسلوب هو performed, the HierarchicalDataBoundControl أسلوب هو called إلى raise the حدث. The GeneologyTree control iterates through the IHierarchicalEnumerable and IHierarchyData objects retrieved from its associated HierarchicalDataSourceView, and creates a text tree structure for the data it is bound to. هذا مثال للتعليمة البرمجية هي جزء من مثال أكبر متوفر لفئة HierarchicalDataBoundControl.


protected override void PerformDataBinding() {
    base.PerformDataBinding();

    // Do not attempt to bind data if there is no
    // data source set.
    if (!IsBoundUsingDataSourceID && (DataSource == null)) {
        return;
    }

    HierarchicalDataSourceView view = GetData(RootNode.DataPath);

    if (view == null) {
        throw new InvalidOperationException
            ("No view returned by data source control.");
    }                                  

    IHierarchicalEnumerable enumerable = view.Select();
    if (enumerable != null) {

        Nodes.Clear();

        try {
            RecurseDataBindInternal(RootNode, enumerable, 1);
        }
        finally {

        }
    }
}
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
إظهار: