HierarchicalDataSourceView IHierarchicalDataSource.GetHierarchicalView(string viewPath)
        {
            IHierarchicalDataSource source = this._dataSource as IHierarchicalDataSource;

            if (source != null)
            {
                return(source.GetHierarchicalView(viewPath));
            }
            IHierarchicalEnumerable dataSource = this._dataSource as IHierarchicalEnumerable;

            if (((dataSource != null) && (viewPath != null)) && (viewPath.Length != 0))
            {
                throw new InvalidOperationException(System.Web.SR.GetString("ReadOnlyHierarchicalDataSourceView_CantAccessPathInEnumerable"));
            }
            return(new ReadOnlyHierarchicalDataSourceView(dataSource));
        }
        /// <devdoc>
        /// Check for IHierarchicalDataSource and IHierarchicalEnumerable, and
        /// return an approprite HierarchicalDataSourceView.
        /// </devdoc>
        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));
        }
コード例 #3
0
        /// <devdoc>
        /// Gets the HierarchicalDataSourceView of the IHierarchicalDataSource
        /// that this control is bound to, if any.
        /// </devdoc>
        protected virtual HierarchicalDataSourceView GetData(string viewPath)
        {
            string currentViewPath     = viewPath;
            IHierarchicalDataSource ds = ConnectToHierarchicalDataSource();

            Debug.Assert(_currentDataSourceValid);

            Debug.Assert(ds != null);

            // IHierarchicalDataSource was found, extract the appropriate view and return it
            HierarchicalDataSourceView view = ds.GetHierarchicalView(currentViewPath);

            if (view == null)
            {
                throw new InvalidOperationException(SR.GetString(SR.HierarchicalDataControl_ViewNotFound, ID));
            }
            return(view);
        }
コード例 #4
0
        protected virtual HierarchicalDataSourceView GetData(string viewPath)
        {
            if (DataSource != null && DataSourceID != "")
            {
                throw new HttpException();
            }
            IHierarchicalDataSource ds = GetDataSource();

            if (ds != null)
            {
                return(ds.GetHierarchicalView(viewPath));
            }

            if (DataSource is IHierarchicalEnumerable)
            {
                return(new ReadOnlyDataSourceView((IHierarchicalEnumerable)DataSource));
            }

            return(null);
        }
コード例 #5
0
    protected void ASPxCallback1_Callback(object sender, CallbackEventArgs e)
    {
        int newsID = int.Parse(e.Parameter);
        IHierarchicalDataSource    dataSource = (IHierarchicalDataSource)XmlDataSource1;
        HierarchicalDataSourceView view       = dataSource.GetHierarchicalView("");
        IHierarchicalEnumerable    enumerable = view.Select();
        int    index = 1;
        string text  = "";

        foreach (object obj in enumerable)
        {
            if (newsID == index)
            {
                IHierarchyData data = enumerable.GetHierarchyData(obj);
                PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(data);
                PropertyDescriptor           descriptor = properties.Find("Text", true);
                text = descriptor.GetValue(obj).ToString();
                break;
            }
            index++;
        }
        e.Result = text;
    }