HierarchicalDataBoundControl.GetData(String) Yöntem

Tanım

Veriye bağlı denetimin veri işlemlerini gerçekleştirmek için kullandığı bir HierarchicalDataSourceView nesneyi alır.

C#
protected virtual System.Web.UI.HierarchicalDataSourceView GetData (string viewPath);

Parametreler

viewPath
String

Alınacak görünümün hiyerarşik yolu.

Döndürülenler

HierarchicalDataSourceView

HierarchicalDataSourceView Veriye bağlı denetimin veri işlemlerini gerçekleştirmek için kullandığı nesne.

Özel durumlar

Belirtilen viewPathiçin a HierarchicalDataSourceView alınamadı.

Örnekler

Aşağıdaki kod örneği, ilişkili veri kaynağı denetiminden nesneyi almak HierarchicalDataSourceView için yönteminin nasıl GetData çağrıldığını ve verileri almak için yönteminin HierarchicalDataSourceView.Select nasıl çağrıldığını gösterir. Bu kod örneği, sınıfı için HierarchicalDataBoundControl sağlanan daha büyük bir örneğin parçasıdır.

C#
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;
        }
    }
}

Açıklamalar

yöntemi, GetData yöntemini çağırarak GetDataSource ilişkili veri kaynağı denetiminden bir HierarchicalDataSourceView nesnesi alır.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

Ayrıca bkz.