ReadOnlyHierarchicalDataSource.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / ReadOnlyHierarchicalDataSource.cs / 1 / ReadOnlyHierarchicalDataSource.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.UI.WebControls { 
 
    using System;
    using System.Collections; 
    using System.ComponentModel;
    using System.Web;
    using System.Web.UI;
    using System.Web.Util; 

 
    ///  
    /// Helper class for hierarchical data bound controls to wrap an generic
    /// data source with a strongly typed IHierarchicalDataSource. This class 
    /// automatically handles other IHierarchicalDataSources and
    /// IHierarchicalEnumerables. This class uses
    /// ReadOnlyHierarchicalDataSourceView to represent individual views.
    ///  
    internal sealed class ReadOnlyHierarchicalDataSource : IHierarchicalDataSource {
 
        private object _dataSource; 

        public ReadOnlyHierarchicalDataSource(object dataSource) { 
            Debug.Assert(dataSource == null || (dataSource is IHierarchicalEnumerable || dataSource is IHierarchicalDataSource), "Expected dataSource to be either null, an IHierarchicalEnumerable, or an IHierarchicalDataSource.");
            _dataSource = dataSource;
        }
 
        #region Implementation of IHierarchicalDataSource
        event EventHandler IHierarchicalDataSource.DataSourceChanged { 
            add { 
            }
            remove { 
            }
        }

        ///  
        /// Check for IHierarchicalDataSource and IHierarchicalEnumerable, and
        /// return an approprite HierarchicalDataSourceView. 
        ///  
        HierarchicalDataSourceView IHierarchicalDataSource.GetHierarchicalView(string viewPath) {
            // Check first for IHierarchicalDataSource 
            IHierarchicalDataSource ds = _dataSource as IHierarchicalDataSource;
            if (ds != null) {
                return ds.GetHierarchicalView(viewPath);
            } 

            IHierarchicalEnumerable enumerable = _dataSource as IHierarchicalEnumerable; 
            if (enumerable != null && viewPath != null && viewPath.Length != 0) { 
                throw new InvalidOperationException(SR.GetString(SR.ReadOnlyHierarchicalDataSourceView_CantAccessPathInEnumerable));
            } 
            return new ReadOnlyHierarchicalDataSourceView(enumerable);
        }
        #endregion
    } 
}
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK